Skip to main content
ThreatPhishing & impersonation

Package-registry maintainer credential / publish-token phishing — impersonates npm / PyPI / RubyGems / crates.io / Packagist / NuGet / CocoaPods / Maven Central / hex.pm with a 2FA-re-verification, mandatory-token-rotation, unusual-publish-activity, or package-ownership-verification narrative + credential-harvesting link on a non-registry host. Targets active package PUBLISHERS (distinct from iter-1194 slopsquatting which targets consumers, and from fake-github-gitlab-developer-account-security-phish which covers generic dev-account phish at platform level). Massive blast radius: one compromised maintainer account → malicious publishes to every package they control → downstream infection of millions of installs within hours. Real precedents: eslint-config-prettier (Jul 2024), chalk/debug/rc (Mar 2025), xmldom + node-ipc + ctx + colors.js/faker.js (2022). Evidence: Socket.dev + Snyk + Phylum + ReversingLabs 2025-2026 supply-chain reports

package-registry-maintainer-token-phishing

What this tier means

High-confidence threat indicator — phishing, impersonation, BEC, or scam pattern. Strong contributor to the trash decision.

How Gorganizer detects this

Package-registry maintainer credential / publish-token phishing. The attack targets active maintainers on the major public package registries (npm, PyPI, RubyGems, crates.io, Packagist, NuGet, CocoaPods, Maven Central, hex.pm, goproxy) with one of four narrative shapes: (a) "mandatory 2FA re-verification required for publishers," (b) "mandatory publish-token rotation under the new supply-chain protection policy," (c) "unusual publish activity detected on your maintainer account — verify ownership," (d) "your publisher credentials are expiring — re-authenticate." The credential-harvesting link points at a typosquat host (npm-publisher-verify.example, pypi-token-rotate.example, crates-io-verify.example) that captures the maintainer's publish credentials. This attack is DISTINCT in blast radius: a consumer credential phish compromises one account; a maintainer credential phish compromises every downstream install of every package that maintainer publishes. Real 2024-2025 precedents document the vector clearly: the eslint-config-prettier maintainer phish in July 2024 ended with the attacker publishing malicious v8.12.0 within hours of credential harvest (thousands of CI pipelines affected before detection); the chalk / debug / rc March 2025 wave used the same playbook with different attackers; earlier major examples include xmldom (2022), node-ipc (2022), ctx (2022), and the colors.js / faker.js self-sabotage incidents. Socket.dev, Snyk (State of Open Source Security 2026), Phylum, and ReversingLabs all publish ongoing supply-chain-phish telemetry that tracks maintainer-targeted campaigns. Distinct from `slopsquatting-package-install-lure` (consumer-side, "install this typosquat name"), from `fake-github-gitlab-developer-account-security-phish` (generic dev-account compromise narrative), and from `fake-oauth-illicit-consent-grant-phish` (OAuth app consent rather than credentials). Legitimate registry communications come exclusively from the registry's own domain: `npmjs.com`, `pypi.org`, `rubygems.org`, `crates.io`, `packagist.org`, `nuget.org`, `cocoapods.org`, `maven.org`, `hex.pm`, `proxy.golang.org`. Any publisher-security email whose sign-in link is hosted elsewhere is, by construction, a phish. Go directly to the registry's account-security page via a bookmarked URL; never click the link in the email. If you maintain packages, enable hardware-backed 2FA (FIDO2 security key) on every registry account and use scoped CI tokens rather than your personal publish token — two layers of defence against even a successful credential phish.

False-positive guard

Every signal in Gorganizer feeds a multi-module score — never a sole verdict. This is a threat-tier signal — it adds a strong contribution to the trash score. The full pipeline still requires convergence across multiple modules + a margin over the safety floor before deletion happens, and Gmail's trash (30-day recovery) is always used — never permanent delete.

About the scoring engine

Gorganizer's scoring engine emits over 1,800 signals across six modules — headers, sender, subject, body, attachments, and structural metadata. Every email is scored by every module independently; the final verdict requires multiple modules to agree and the trash score to beat the safety floor by a margin.

Sacred safety guards — never delete starred emails, replies, calendar invites, receipts/invoices, or attachments — apply unconditionally regardless of any signal.

Ready to clean your inbox?

Gorganizer scans your Gmail with this signal and 1,800+ others, then cleans everything in one click. $4.99 one-time, no subscription.

Get started