{"id":"MAL-2026-10744","summary":"Malicious code in patchwork-os (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (cc351c90dbe7a3ede9536138db9071a7cc8b2f8b2824b7956f26553e349a72d9)\ndist/drivers/gemini/index.js line 53 contains a literal `curl https://attacker` string co-located with an `install` reference (line 286), matching a known-bad-infrastructure fetch pattern. dist/index.js and other modules combine hardcoded POST/fetch primitives with ping/curl/hostname/id host-recon commands across the connectors, dashboard, and orchestrator surface (dist/index.js line 688 onward, dist/haltPushDispatch.js line 9 reading hostname alongside POST calls, dist/server.js, dist/config.js which invokes curl at lines 83 and 807). Base64 decoding via Buffer.from(..., 'base64').toString() appears in dist/resources.js line 164 and dist/connectors/airtable.js, consistent with obfuscated payload or credential handling. The combined shape — a shipped `curl https://attacker...` string on a code path adjacent to install/driver initialization, host-reconnaissance primitives, and base64-decoded blobs — is inconsistent with a legitimate OS/orchestration package and indicates code that fetches attacker-controlled content and exfiltrates host data.\n","modified":"2026-08-19T04:45:20.911058624Z","published":"2026-07-16T18:46:25Z","withdrawn":"2026-08-19T01:42:44.295725Z","database_specific":{"malicious-packages-origins":[{"versions":["1.1.0-beta.3.canary.414"],"id":"IN-MAL-2026-010786","import_time":"2026-07-16T18:54:04.842850206Z","modified_time":"2026-07-16T18:47:36Z","sha256":"101e7bafc335a4ccaf6418355dc242911c639482ce71a8b1f22b75bbdbb8af7e","source":"amazon-inspector"},{"id":"IN-MAL-2026-010778","import_time":"2026-07-16T18:54:04.280286424Z","modified_time":"2026-07-16T18:46:25Z","sha256":"4c3e60dee318dee01580c9bdc74d8f40ff7cb280f5770eeeafbc289e98383cc5","source":"amazon-inspector","versions":["1.1.0-beta.3.canary.417"]},{"import_time":"2026-07-16T18:54:04.352853599Z","modified_time":"2026-07-16T18:46:33Z","sha256":"7e7049cbdf1230bdbab4d2e399351fe4b0eb887197ee064a8cd7ca94135a02bd","source":"amazon-inspector","versions":["1.1.0-beta.3.canary.416"],"id":"IN-MAL-2026-010779"},{"sha256":"1e9392c2cc03075ce2b3b9a24916dc1b2746c552e8191654408d44ef0284334b","source":"amazon-inspector","versions":["1.1.0-beta.3.canary.415"],"id":"IN-MAL-2026-010780","import_time":"2026-07-16T18:54:04.505660234Z","modified_time":"2026-07-16T18:46:41Z"},{"import_time":"2026-08-05T19:04:54.030946121Z","modified_time":"2026-08-05T18:11:07Z","sha256":"a1cab67a370c6473d154e580357957acfc232d4620b49b5ceefcd9a010a12fd0","source":"amazon-inspector","versions":["1.1.0-beta.4.canary.509"],"id":"IN-MAL-2026-015844"},{"sha256":"cc351c90dbe7a3ede9536138db9071a7cc8b2f8b2824b7956f26553e349a72d9","source":"amazon-inspector","versions":["1.1.0-beta.4.canary.511"],"id":"IN-MAL-2026-015842","import_time":"2026-08-05T19:04:53.897298827Z","modified_time":"2026-08-05T18:10:52Z"},{"source":"amazon-inspector","versions":["1.1.0-beta.4.canary.510"],"id":"IN-MAL-2026-015843","import_time":"2026-08-05T19:04:53.961449187Z","modified_time":"2026-08-05T18:11:00Z","sha256":"e9aef4d05bd78e5033a41c179318c47b565cbe76c60235af881721a9d9821a8e"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.3.canary.414"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.3.canary.417"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.3.canary.416"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.3.canary.415"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.4.canary.509"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.4.canary.511"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/patchwork-os/v/1.1.0-beta.4.canary.510"}],"affected":[{"package":{"name":"patchwork-os","ecosystem":"npm","purl":"pkg:npm/patchwork-os"},"versions":["1.1.0-beta.3.canary.414","1.1.0-beta.3.canary.417","1.1.0-beta.3.canary.416","1.1.0-beta.3.canary.415","1.1.0-beta.4.canary.509","1.1.0-beta.4.canary.511","1.1.0-beta.4.canary.510"],"database_specific":{"cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."},{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."},{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"},{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."},{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"indicators":{"evidence_files":[{"path":"dist/approvalHttp.js","sha256":"a52745b001f2122e5e46f99ca4f08ea51ec0e919d79030e35595f525e09bc941","tlsh":"07f2945a51f322710a6ba0a94b1ba261a731d5173509ed90bf9dc3a42f8d42cc3f7fc9"},{"tlsh":"10a3b41a67ab1032496ba158cf1b61029730d44b3615e4ac7e9d93d8af8c63c83f6ff5","path":"dist/bridge.js","sha256":"7d50bc5d26eafc17b774e0bd4a0fa5de3a99622feff1bc1861c41bf2d7affb28"},{"path":"dist/commands/connect.js","sha256":"d9615edbca91ff5796a7f23e21d6d4f989e6edcf7c139ab04e3013f7cd44d00c","tlsh":"1262307919b321213763e4ad4b1bc0422764b5037204d954ba5cb2a0afee1e5c7f6bfe"},{"tlsh":"d183e75a48f312214a6361b99b4f5005a635c0177618fca4fa8c8b607f4d63ce7f7bea","path":"dist/commands/recipe.js","sha256":"1ef45970d4392f7c2ac2fcb877fe8288bd32489ce0fef119dbc181e84da44eeb"},{"path":"dist/commands/task.js","sha256":"6e89013dc1188544c11cd5201f28b104d2b49085e44ce4aeb41fd1ce700fb33d","tlsh":"3842844924b7123506a7a1b65f5f50462b74890bb608d824beacc3903f4a4bdd7b3fda"},{"path":"dist/commands/tokenEfficiency.js","sha256":"2f37f6273c99a3b91271037e4aa82595e2880bd289a6fde8152cbe2dc4c73c95","tlsh":"9202837514b726313a97e96d8b6b842227217a173518ec447e8cf7112fce42c8262bfe"},{"path":"dist/config.d.ts","sha256":"fe6e48c3decf87dbd6d0175fbe3a859a55be212be0aa383473c8c549d580c76d","tlsh":"27f15f1369eb22670e948262ebde11520f5887472321f4fafeec76181f4f50d92b3b24"},{"sha256":"763bb379e3b60479e5ca7e1f5b5e7d957e32b1d5efb3332c845afb297eeb5229","tlsh":"a403e90a99eb197345a352725b6b60122b74e9432654fc987a4ce3043fce0bd42f7bed","path":"dist/config.js"},{"path":"dist/connectors/airtable.js","sha256":"056c376da9783f99f7fbe5b1fb13c8b3fa1e7d780d40510dfea3d74c0fa475b9","tlsh":"14c2207526f321123a53e09e5b1b9046a220b4173d0cec14bb9cb3a42fcd55ad9a7bf8"},{"path":"dist/connectors/confluence.js","sha256":"f82c188384c9206ac1ed4b998ab911ee2938a95f37a98eceefa341f5ce09b550","tlsh":"5f7211b919b322223b27f51e4a5bb012a2217807795c9c54bb5c73942fdd11ea4b3bf8"},{"sha256":"124ae48f11d1a153340cd106fd87950a81a615a5647dfdc37ae0300dd57b2827","tlsh":"056200b519f311123a67f46e1b1be001a261b8073d4cd860bb9c72907fce16999b6bf9","path":"dist/connectors/datadog.js"},{"sha256":"f0621a8cb730c15b81544650bdfc81c6ea5c792aec63649f0851255970ba5ee1","tlsh":"99821fb919a322213a67f11f4a6fa011a265b4073d1c9854bf9c73902fcd029d9e7ff9","path":"dist/connectors/grafana.js"},{"sha256":"e2009e2136e0a8db4c3ebc5dc689a1a2e2e17ffa13bca9aaaf627e69fa1010ea","tlsh":"04a2217919f322212a17f52e4f5b9011a221b8073d4cac54bb5c73901fce96e99b7bf8","path":"dist/connectors/jira.js"},{"tlsh":"5562148d2ef725110e6bf55b5e1ba012e71158072d1cec14bb6c53503f4a06ed9afbd8","path":"dist/connectors/obsidian.js","sha256":"f662f6fd3dd5544a2e4fbe15a43e65851d3a19651bc49e60fd9b7c50bad9f4c5"},{"sha256":"5d464d71053872023aa69902ba55651442c03042c6b9e0729fe1162acc5bed17","tlsh":"c48201b868b7521136a7f15e4a5bd042e222b407395ce820bb9c72502fce06dd5e7ff9","path":"dist/connectors/posthog.js"},{"tlsh":"c5f0c02d92583476df1d8a79d55a53d68bb05015321214e9a2db0159476d26e933fc04","path":"dist/dashboard.d.ts","sha256":"c561e4cc72ebcf48488975d9253e4b94b694af2324a22dca054a25471e6aa63c"},{"tlsh":"baf1d8b3b2721532265be2e7f2d6d3ae73b08553f503855079ac44148fc9ee0925aedc","path":"dist/dashboard.js","sha256":"fef589d133d308de1181de5c9d3e327891809bc2cc90b0d52a948cc8726c86fc"},{"path":"dist/drivers/gemini/index.js","sha256":"6caae6f8e387095d6884c36478117d7e6ef9b4459c12ef361165956ed28b151a","tlsh":"e3b2f90965bf17291ea3147aab0b73026360c2174b29fd60fd6f87549f4a22d43f27da"},{"path":"dist/haltPushDispatch.js","sha256":"3c402aad461cc1d3cef41fb35e96707c705a283362d1c1c7e801293acaf0a14b","tlsh":"7361625949f36130027b68798f0bd6136237914f2129bc64bf9c43586fce86cd26bf98"},{"path":"dist/index.js","sha256":"0e9600cdf57abc5070f22e089655107df3097f694fa4df9f653972ad3c5a2512","tlsh":"5b14b81a44fb16350ab361b9ab0b50167f79d417b304d964ba6dc3407f8a838c2a77ef"},{"sha256":"cc1253a29fcb3fc7afc38aae1db1786c88a762ce68bd568362f3f057ca649f6a","tlsh":"9f23943866e310227aa3d16d5f0bd112b235b017740dd958be8d73e81fce46982b7af9","path":"dist/oauth.js"},{"tlsh":"6b52505d25f3113646a7e5aa0f2ba0117732841b7469dc18bf9c43906f4992c87f6ff8","path":"dist/orchestrator/childBridgeClient.js","sha256":"3658da94658a68282b2638f43cebdf0a92d4320d1bba999cf383cc1d71f7fb55"},{"tlsh":"9212769798b33a252a72b1ad434f11037658e0573d08fa587b8cc7082f9952d95fb7ec","path":"dist/resources.js","sha256":"da245ef934414a21a8b596147d80820d909da32a3495ab7550c67f409b2d2cb7"},{"path":"dist/server.js","sha256":"d10645bfd56bb24854824f24dd330e3ea0419700610b5487ad0a6c138e7e5cb7","tlsh":"c4e3b45669e711230f77923d4f4b6141b721c42ba219c990fe4d936c2fc9a2c82f7be9"},{"sha256":"33569342d1dca0f0c69147a3d84c68443bed4300a3153f90f0ccaff1d19df833","tlsh":"8fb12f4d91bb95324277f6a44aeb5207b33090472a89ec64bb8cd3701f5d12df2b6bd8","path":"dist/tools/openInBrowser.js"},{"path":"scripts/start-all.mjs","sha256":"3c081fe67af7e9940b655f8394d7cf69cd68d3b36e179740b0e6245a85cdf53f","tlsh":"0aa2b33965fa062a7ab7e16c9b4741176324b007355ad864f29e72002fde93c42b3afd"}],"package_integrity":[{"filename":"patchwork-os-1.1.0-beta.3.canary.414.tgz","hashes":{"sha1":"f793502d305a97b07e13e2495281be5f53873ea0","sha512_sri":"sha512-6Q30/LbQZ2Gog7/hemHZdnrUe6bnqRRLjkANpmztF8ZN1SLYrN9sqZ1tDC4rjgz5FX0A3P5Inkx55kWka789vg=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/withdrawn/npm/patchwork-os/MAL-2026-10744.json"}}],"schema_version":"1.9.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}