-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
ISSUE#12905 - Introduced protections against deserialization attacks (#2) #12906
base: develop
Are you sure you want to change the base?
Conversation
Thanks for your this PR. 🙏 感谢您提交的PR。 🙏 |
403170c
to
f02f7ae
Compare
|
سلام تمام دارایی مرا دزدیده شده کیف اول مرا ۱۲کلمه عبور آن حک شده 0x14f4f11f6aA6dFc3eFB70a1661b2c2A8598E46BEاین ادرس کیف اول است دوباره کیف جدید ساختم وشروع به کار کردم ولی این هم خالی شد برای اینکه رد کیف اول را گم نکنم از کیف دوم به کیف اول واریز میکردم وبرداشت میشدوادرس کیف دوم0xe430f15477dD0642354EC6C82d368D5005dDC983این است |
Ok
Em ter., 7 de jan. de 2025, 05:43, Majid ***@***.***>
escreveu:
… سلام تمام دارایی مرا دزدیده شده کیف اول مرا ۱۲کلمه عبور آن حک شده
0x14f4f11f6aA6dFc3eFB70a1661b2c2A8598E46BEاین ادرس کیف اول است دوباره کیف
جدید ساختم وشروع به کار کردم ولی این هم خالی شد برای اینکه رد کیف اول را گم
نکنم از کیف دوم به کیف اول واریز میکردم وبرداشت میشدوادرس کیف
دوم0xe430f15477dD0642354EC6C82d368D5005dDC983این است
—
Reply to this email directly, view it on GitHub
<#12906 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4MT7RFDCGICFKQSEASK4ID2JOHTBAVCNFSM6AAAAABSYP22SKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNZUGY4TONJTGU>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
کیفم راحک کردند |
Hi, my name is Zach and I'm a developer for Pixee. I wanted to bring some light to this change as it was generated from our automated code security bot.
This change hardens Java deserialization operations against attack. Even a simple operation like an object deserialization is an opportunity to yield control of your system to an attacker. In fact, without specific, non-default protections, any object deserialization call can lead to arbitrary code execution. The JavaDoc now even says:
Let's discuss the attack. In Java, types can customize how they should be deserialized by specifying a
readObject()
method like this real example from an old version of Spring:Reflecting on this code reveals a terrifying conclusion. If an attacker presents this object to be deserialized by your app, the runtime will take a class and a method name from the attacker and then call them. Note that an attacker can provide any serliazed type -- it doesn't have to be the one you're expecting, and it will still deserialize.
Attackers can repurpose the logic of selected types within the Java classpath (called "gadgets") and chain them together to achieve arbitrary remote code execution. There are a limited number of publicly known gadgets that can be used for attack, and our change simply inserts an ObjectInputFilter into the
ObjectInputStream
to prevent them from being used.This is a tough vulnerability class to understand, but it is deadly serious. It offers the highest impact possible (remote code execution), it's a common vulnerability (it's in the OWASP Top 10), and exploitation is easy enough that automated exploitation is possible. It's best to remove deserialization entirely, but our protections is effective against all known exploitation strategies.
More reading
I have additional improvements ready for this repo! If you want to see them, leave the comment: (after installing for your repo here)
... and I will open a new PR right away!
🧚🤖 Powered by Pixeebot
Feedback | Community | Docs | Codemod ID: pixee:java/harden-java-deserialization
Follow this checklist to help us incorporate your contribution quickly and easily:
[ISSUE #123] Fix UnknownException when host config not exist
. Each commit in the pull request should have a meaningful subject line and body.mvn -B clean package apache-rat:check findbugs:findbugs -Dmaven.test.skip=true
to make sure basic checks pass. Runmvn clean install -DskipITs
to make sure unit-test pass. Runmvn clean test-compile failsafe:integration-test
to make sure integration-test pass.