contracts-upgradeable takes the unscoped name of @openzeppelin/contracts-upgradeable and has no functional code. Its preinstall script runs node preinstall.js on npm install, which POSTs the machine's hostname, the OS username and the local time to the Discord webhook https://canary.discord.com/api/webhooks/1566232728179843243/pM5rDIrCRrEpQRbA7ibaiQk1XOQlIftmBacA5s8jD8NvXn5W-rS832DOWHQS-G-j3N6U as "PC Notifier". It was published on 2026-11-02 by the npm account bigdevin55, which published sol-wallet-adapter 1.0.7 with the same script the same day; the account cutekitten05 used the same webhook in packages published on 2026-11-01.
{
"iocs": {
"files": [
{
"digests": {
"sha256": "d619f985a0aa87e19f7b87dcdee7a29ebe94fb3cdf62960d9c8425edcf554a0a"
},
"note": "preinstall runs `node preinstall.js`, which POSTs hostname and username to a Discord webhook (contracts-upgradeable@1.0.0).",
"paths": [
"package.json"
],
"source": "PACKAGE_ARCHIVE"
},
{
"digests": {
"sha256": "d2709b8afcf5e5e2859d0b56c8f119b73c98fc56c32fb072baea5b51b1cc3554"
},
"note": "Executed by the preinstall script of contracts-upgradeable@1.0.0.",
"paths": [
"preinstall.js"
],
"source": "PACKAGE_ARCHIVE"
}
],
"urls": [
"https://canary.discord.com/api/webhooks/1566232728179843243/pM5rDIrCRrEpQRbA7ibaiQk1XOQlIftmBacA5s8jD8NvXn5W-rS832DOWHQS-G-j3N6U"
]
}
}