Skip to content
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

Java: Unsafe deserialization with Jackson #368

Closed
1 task done
artem-smotrakov opened this issue May 15, 2021 · 8 comments
Closed
1 task done

Java: Unsafe deserialization with Jackson #368

artem-smotrakov opened this issue May 15, 2021 · 8 comments
Labels
All For One Submissions to the All for One, One for All bounty

Comments

@artem-smotrakov
Copy link

artem-smotrakov commented May 15, 2021

Query

github/codeql#5900

CVE ID(s)

Report

Deserialization of untrusted data with Jackson is known to be dangerous:

https://www.github.com/mbechler/marshalsec/blob/master/marshalsec.pdf?raw=true

I'd like to propose to add sinks for Jackson to UnsafeDeserialization.ql.

There are multiples CVEs for deserialization gadgets for Jackson Databind:

https://www.cvedetails.com/vulnerability-list/vendor_id-15866/product_id-42991/Fasterxml-Jackson-databind.html

Those CVEs create quite a lot of noise because many applications don't use polymorphic typing. The query would help check if applications are really affected by such CVEs. On the other hand, if an application actually turns on polymorphic typing, and deserializes data from remote peers, that would be a significant security risk that can be identified by this query.

  • Are you planning to discuss this vulnerability submission publicly? (Blog Post, social networks, etc). We would love to have you spread the word about the good work you are doing

I am planning to write wrote a blog post about detecting such issues.

Result(s)

@artem-smotrakov artem-smotrakov added the All For One Submissions to the All for One, One for All bounty label May 15, 2021
@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented May 25, 2021

Your submission is now in status SecLab review.

For information, the evaluation workflow is the following:
SecLab review > FP Check > CodeQL review > SecLab finalize > Pay > Closed

@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented May 28, 2021

Your submission is now in status FP Check.

For information, the evaluation workflow is the following:
SecLab review > FP Check > CodeQL review > SecLab finalize > Pay > Closed

@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented Jul 16, 2021

Your submission is now in status CodeQL review.

For information, the evaluation workflow is the following:
SecLab review > Generate Query Results > FP Check > CodeQL review > SecLab finalize > Pay > Closed

@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented Aug 2, 2021

Your submission is now in status SecLab finalize.

For information, the evaluation workflow is the following:
SecLab review > Generate Query Results > FP Check > CodeQL review > SecLab finalize > Pay > Closed

@artem-smotrakov
Copy link
Author

artem-smotrakov commented Aug 2, 2021

FYI I wrote a blog post about detecting Jackson deserialization vulnerabilities with CodeQL.

@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented Aug 2, 2021

Your submission is now in status Pay.

For information, the evaluation workflow is the following:
SecLab review > Generate Query Results > FP Check > CodeQL review > SecLab finalize > Pay > Closed

@xcorail
Copy link
Contributor

xcorail commented Aug 2, 2021

Created Hackerone report 1287573 for bounty 323069 : [368] Java: Unsafe deserialization with Jackson

@xcorail xcorail closed this as completed Aug 2, 2021
@ghsecuritylab
Copy link
Collaborator

ghsecuritylab commented Aug 2, 2021

Your submission is now in status Closed.

For information, the evaluation workflow is the following:
SecLab review > Generate Query Results > FP Check > CodeQL review > SecLab finalize > Pay > Closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
All For One Submissions to the All for One, One for All bounty
Projects
None yet
Development

No branches or pull requests

3 participants