[ 
https://issues.apache.org/jira/browse/AVRO-3551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17562119#comment-17562119
 ] 

Kalle Niemitalo commented on AVRO-3551:
---------------------------------------

The public or protected API currently depends on Newtonsoft.Json.Linq.JToken or 
Newtonsoft.Json.JsonTextWriter in a few places:

{code:C#}
namespace Avro {
    public partial class ArraySchema {
        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public partial class EnumSchema {
        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public partial class Field {
        public JToken DefaultValue { get; private set; }

        public Field(Schema schema, string name, int pos, IList<string> aliases 
= null, string doc = null, JToken defaultValue = null, SortOrder sortorder = 
SortOrder.ignore, PropertyMap customProperties = null);

        protected internal void writeJson(JsonTextWriter writer, SchemaNames 
names, string encspace)
    }

    public partial class FixedSchema {
        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public partial class LogicalSchema {
        protected internal override void 
WriteJson(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, string 
encspace);
    }

    public partial class MapSchema {
        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public abstract partial class NamedSchema {
        protected static SchemaName GetName(JToken jtok, string encspace);

        protected static IList<SchemaName> GetAliases(JToken jtok, string 
space, string encspace);

        protected internal override void 
WriteJson(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, string 
encspace);

        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public sealed partial class PrimitiveSchema {
        // OK because sealed
        protected internal override void WriteJson(JsonTextWriter w, 
SchemaNames names, string encspace);
    }

    public partial class PropertyMap {
        public void Parse(JToken jtok);

        public void WriteJson(JsonTextWriter writer);
    }

    public partial class RecordSchema {
        protected internal override void 
WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, 
string encspace);
    }

    public partial class Schema {
        protected internal virtual void WriteJsonFields(JsonTextWriter writer, 
SchemaNames names, string encspace);

        protected internal virtual void WriteJson(JsonTextWriter writer, 
SchemaNames names, string encspace);
    }

    public partial class UnionSchema {
        protected internal override void 
WriteJson(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, string 
encspace);
    }
}

namespace Avro.Reflect {
    public partial class ReflectDefaultReader {
        public object GetDefaultValue(Schema s, JToken defaultValue);
    }
}
{code}

Switching to System.Text.Json would break this API so I don't think it should 
be done on the 1.11 branch.

If anyone is even willing to implement such a change. There are other bugs that 
are not so easy to work around.

> Security Vulnerability - WS-2022-0161 in Newtonsoft dependendy
> --------------------------------------------------------------
>
>                 Key: AVRO-3551
>                 URL: https://issues.apache.org/jira/browse/AVRO-3551
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: csharp
>    Affects Versions: 1.11.0
>            Reporter: Michael Ahrens
>            Priority: Major
>
> Please upgrade Newtonsoft dependency to 13.0.1 in next version. Below 
> versions have a security vulnerability: WS-2022-0161
> Thanks
> Michael



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to