figma-to-apl is a dependency-confusion package: it takes a name that looks like an internal project, uses an inflated version (100.0.0) so it outranks private-registry versions, and runs node setup.js || true as a preinstall script on npm install. setup.js sends the hostname, username, working directory, OS, architecture, Node.js version and configured npm registry, with a per-package tracking token, in an HTTPS POST to https://s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook. The npm account amel10 published figma-to-apl and 9 similar packages within two minutes on 2026-09-30, all with the same setup.js.
-= Per source details. Do not edit below this line.=-
figma-to-apl@100.0.0 declares a preinstall script ("node setup.js || true") that runs automatically on npm install. setup.js collects installer-side identifiers — os.hostname(), os.userInfo().username, process.cwd(), process.platform, process.arch, Node version, and the configured npm registry — and POSTs them together with a hardcoded per-package token to https://s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook. The package's advertised functionality is a one-line string-truncation helper, unrelated to the beacon. The version number 100.0.0 combined with a per-package identifying token is characteristic of a dependency-confusion / typosquat reconnaissance probe designed to identify internal build systems that resolve the public package name.
{
"iocs": {
"domains": [
"s85r5k14qk.execute-api.us-east-1.amazonaws.com"
],
"files": [
{
"digests": {
"sha256": "152e02f6e857bab690940a159a851d46eb0c68a8ddcec052ba7c48e7cb64ed88"
},
"note": "preinstall: node setup.js || true",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE"
},
{
"digests": {
"sha256": "3eea4e3b6333cb555c694ea40437c390fc64d7e6591e175dc6b68e42732fa027"
},
"note": "Executed by the preinstall script.",
"paths": [
"setup.js"
],
"source": "PACKAGE_ARCHIVE"
}
],
"urls": [
"https://s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook"
]
},
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-020943",
"import_time": "2026-10-04T23:40:44.512966506Z",
"modified_time": "2026-10-04T23:23:40Z",
"sha256": "7e8bd598a9ef9799fc78fb815fba85f3b58114b269ccd6dc710e2113bf13efca",
"source": "amazon-inspector",
"versions": [
"100.0.0"
]
}
]
}[
{
"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.",
"name": "Embedded Malicious Code"
}
]
{
"evidence_files": [
{
"path": "setup.js",
"sha256": "3eea4e3b6333cb555c694ea40437c390fc64d7e6591e175dc6b68e42732fa027",
"tlsh": "1201c0f4d1e0d5b53ab811c8e290644793b7d024750765d0cca841556b85aa809728f2"
},
{
"path": "package.json",
"sha256": "152e02f6e857bab690940a159a851d46eb0c68a8ddcec052ba7c48e7cb64ed88",
"tlsh": "10d095100c05553308c8436049b6c145f4510d2f03547c5893df10084b6c3b724fe70d"
}
],
"package_integrity": [
{
"filename": "figma-to-apl-100.0.0.tgz",
"hashes": {
"sha1": "185cf2a0d13218435131a6c3ca7ea9ed5a310042",
"sha512_sri": "sha512-1RVxLCz09arIavRbtiF31BnoSUl9CDc7HDLU3eeNP1hvd+2NwbL2NUhDMNzJml4TmqlLwNllXtfmaMIWBqo41Q=="
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/figma-to-apl/MAL-2026-17433.json"