-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SerializationGuard is used when EnableUnsafeBinaryFormatterSerialization feature switch is disabled #44369
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Serialization Guard isn't a BinaryFormatter-only thing. It's also currently used in DataSet / DataTable: runtime/src/libraries/System.Data.Common/src/System/Data/Filter/FunctionNode.cs Lines 515 to 519 in 96073fd
Interestingly, our implementation of Serialization Guard was the only thing that prevented the original CVE-2020-1147 PoC payload from executing correctly on .NET Core. We've had offline discussions about enlightening other serializers like DataContractSerializer and System.Text.Json, and even third-party deserializers like JSON.NET. But TBH these discussions haven't really panned out. The runtime crew generally likes the idea of nixing Serialization Guard entirely as a feature. I think eventually we can get there, but if we go this route it should be paired with a renewed effort to excise dangerous serialization code from the ecosystem. |
That API is probably something that will never be used in modern workloads. I'm not sure we actually have to have it at all for example on in the browser. Secondly, someone would have to have
Are you pointing to source generators here? |
SerializationGuard logic is still used even if EnableUnsafeBinaryFormatterSerialization feature is disabled via feature switch. This brings unnecessary dependencies for size sensitive workloads.
Ideally, code like
would be completely removed as well
The text was updated successfully, but these errors were encountered: