{"adoption": {"forks": 1859, "observed_at": "2026-08-28T04:10:28.028819+00:00", "stars": 9033}, "canonical_url": "https://ross.abutalabs.com/products/ysoserial", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization.", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["security", "penetration-testing", "vulnerability-scanning", "serialization", "cli"], "health_score": 53, "homepage": "http://frohoff.github.io/appseccali-marshalling-pickles/", "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["frohoff/ysoserial"], "name": "frohoff/ysoserial", "platform": ["jvm", "cli", "cross-platform"], "pushed_at": "2025-12-04T04:07:31+00:00", "repo": "frohoff/ysoserial", "stars": 9033, "tags": ["java-deserialization", "gadget-chains", "exploit-payloads", "poc-tool", "security-research", "jvm"], "topics": ["java", "deserialization", "gadget", "exploit", "javadeser", "jvm", "serialization", "poc", "vulnerability"], "urls": [], "use_cases": ["generate java deserialization exploit payloads", "test applications for unsafe deserialization vulnerabilities", "demonstrate java gadget chain attacks in security research", "verify deserialization defenses against known gadget chains", "learn about java deserialization vulnerabilities", "payload generation for penetration testing java apps"], "what_it_is": "ysoserial is a proof-of-concept command-line tool that generates serialized Java payloads exploiting unsafe object deserialization using gadget chains found in common Java libraries. It wraps a user-specified command in a chosen gadget chain and outputs the serialized object for use in authorized security testing and research.", "when_to_avoid": ["you need a defensive scanning tool rather than payload generation", "your target is not a Java/JVM application", "you lack explicit authorization to test the target system"], "when_to_choose": ["you need to test or demonstrate Java unsafe deserialization vulnerabilities in authorized engagements", "you want a well-known reference tool with gadget chains for many common Java libraries", "you are researching or teaching deserialization attack techniques"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ysoserial", "repo": "frohoff/ysoserial", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:28.028819+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:24:05.876440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e07ae13517ed5ea24876bcc7252f8bd19e55630336f7ebce9882f07cb7e1cc25", "fetched_at": "2026-08-28T04:10:28.028819+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frohoff/ysoserial"}, {"content_hash": "bca2fbab715fac573fbbb26f3a17e946166498076b17f201445df253385bc07f", "fetched_at": "2026-08-29T08:24:07.913904+00:00", "kind": "homepage", "missing": false, "url": "http://frohoff.github.io/appseccali-marshalling-pickles/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4235, "days_push": 272, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}