{"schemaVersion":3,"id":"CVE-2026-24846","aliases":["GHSA-923j-vrcg-hxwh","GO-2026-4391"],"status":"published","duplicateOf":null,"title":null,"description":"malcontent discovers supply-chain compromises through. context, differential analysis, and YARA. Starting in version 1.8.0 and prior to version 1.20.3, malcontent could be made to create symlinks outside the intended extraction directory when scanning a specially crafted tar or deb archive. The `handleSymlink` function received arguments in the wrong order, causing the symlink target to be used as the symlink location. Additionally, symlink targets were not validated to ensure they resolved within the extraction directory. Version 1.20.3 introduces fixes that swap handleSymlink arguments, validate symlink location, and validate symlink targets that resolve within an extraction directory.","dates":{"published":"2026-01-29T21:12:18.991Z","modified":"2026-01-29T21:37:29.730Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.5,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.5,"severity":"medium","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Go","score":5.5,"severity":"medium","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","exploitability":4.6,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5,"severity":"medium","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00189,"percentile":0.08064,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0.014999999999999996,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.00174},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0017,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0017,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0017,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00189,"percentile":0.08064}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00174,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00189,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00189,"percentile":0.08064}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"},{"id":"CWE-683","name":"Function Call With Incorrect Order of Arguments","description":"The product calls a function, procedure, or routine, but the caller specifies the arguments in an incorrect order, leading to resultant weaknesses.","type":"weakness","status":"Draft","abstraction":"Variant","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/683.html"}],"affected":[{"vendor":"chainguard-dev","product":"malcontent","name":"malcontent","label":"malcontent","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.8.0, < 1.20.3","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.8.0, < 1.20.3","eol":null,"hubHref":"/vendor/chainguard-dev/malcontent"},{"vendor":"chainguard","product":"malcontent","name":"malcontent","label":"malcontent","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.8.0, < 1.20.3","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.8.0, < 1.20.3","eol":null,"hubHref":"/vendor/chainguard/malcontent"},{"vendor":"github.com/chainguard-dev","product":"malcontent","name":"github.com/chainguard-dev/malcontent","label":"malcontent","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/chainguard-dev/malcontent","purlType":"golang","versions":[{"text":"≥ 1.8.0, < 1.20.3","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.8.0, < 1.20.3","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/chainguard-dev/malcontent/security/advisories/GHSA-923j-vrcg-hxwh","label":"github.com/chainguard-dev/malcontent/security/advisories/GHSA-923j-vrcg-hxwh","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory","Vendor Advisory"]},{"url":"https://github.com/chainguard-dev/malcontent/commit/259fca5abc004f3ab238895463ef280a87f30e96","label":"github.com/chainguard-dev/malcontent/commit/259fca5abc004f3ab238895463ef280a87f30e96","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch"]},{"url":"https://github.com/chainguard-dev/malcontent/commit/a7dd8a5328ddbaf235568437813efa7591e00017","label":"github.com/chainguard-dev/malcontent/commit/a7dd8a5328ddbaf235568437813efa7591e00017","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","Patch"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-24846","label":"nvd.nist.gov/vuln/detail/CVE-2026-24846","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/chainguard-dev/malcontent","label":"github.com/chainguard-dev/malcontent","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:21483-1","SUSE-SU-2026:0403-1"],"duplicates":[],"related":["OPENSUSE-SU-2026:21483-1","SUSE-SU-2026:0403-1"]},"timeline":[{"kind":"published","date":"2026-01-29T21:12:18.991Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-01-29T21:37:29.730Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":22,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T12:17:03.881Z","stale":false,"partial":false}}