{"adoption": {"forks": 149, "observed_at": "2026-08-28T04:04:07.568935+00:00", "stars": 1247}, "canonical_url": "https://ross.abutalabs.com/products/ysomap", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A helpful Java Deserialization exploit framework.", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["security", "penetration-testing", "cli", "serialization"], "health_score": 28, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["wh1t3p1g/ysomap"], "name": "wh1t3p1g/ysomap", "platform": ["cli", "cross-platform", "jvm"], "pushed_at": "2025-02-17T06:35:51+00:00", "repo": "wh1t3p1g/ysomap", "stars": 1247, "tags": ["java-deserialization", "exploit-framework", "gadget-chains", "jndi", "rmi", "ysoserial-alternative", "offensive-security"], "topics": ["java-deserialization", "exploitation-framework"], "urls": [], "use_cases": ["generate java deserialization payloads", "test java deserialization vulnerabilities", "exploit jndi and rmi endpoints in authorized pentests", "learn how java deserialization gadget chains work", "craft fastjson or xstream exploit payloads", "run deserialization exploits from a script"], "what_it_is": "Ysomap is a Java deserialization exploit framework that lets users dynamically configure gadget chain payloads with different execution effects. It splits chains into reusable payload and bullet components and supports exploits over RMI, JNDI, JMX, Shiro, and XMLRPC.", "when_to_avoid": ["you need weblogic or websphere attack packages, which are not yet implemented", "you are not performing authorized security testing - unauthorized use is illegal", "you need a GUI-driven tool, as ysomap is terminal/script based", "you require a stable release cadence, since releases batch up many chain updates"], "when_to_choose": ["you need a flexible, configurable alternative to ysoserial for authorized testing", "you want to swap execution effects (command exec, memory shell, file write) on the same gadget chain", "you need JSON-based chains like fastjson or hessian, not just native serialization", "you want a scriptable exploit workflow for repeated configurations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ysomap", "repo": "wh1t3p1g/ysomap", "role": "main", "score": 26}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "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:04:07.568935+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:07.568935+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:59.650245+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f6539e982aa58fb992bcbd2dcb10671a8ad991bd4653a4752ae46ae2b1b6819", "fetched_at": "2026-08-28T04:04:07.568935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wh1t3p1g/ysomap"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 7, "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": 2398, "days_push": 562, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 26, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}