github.com/shopsprint/decimal has 1 version on the Go module proxy flagged in 1 incident we track. Only the exact versions listed below were named by the source advisories.
github.com/shopsprint/decimal never had a legitimate version. It was published to be mistaken for a real package, so any install of it was an install of the payload.
Affected versions
Check what you actually have installed with go list -m all.
Socket disclosed a long-running Go typosquat of github.com/shopspring/decimal published as github.com/shopsprint/decimal (single-letter swap, t for g). The typosquat was registered 2017-11-08 and was weaponised on 2023-08-19 in v1.3.3, which adds a malicious init() that polls a free-dynamic-DNS subdomain for TXT-record commands every five minutes and executes the response via os/exec. Dwell time before disclosure: ~33 months.
Versions named here: v1.3.3
What to do if you installed one of these
Treat the machine as compromised rather than simply upgrading. Packages in these incidents typically execute at install time, so the payload has already run with whatever credentials were in the environment.
1.Rotate every credential that machine or CI job could reach - registry tokens, cloud keys, SSH keys, CI secrets - from a different machine.
2.Pin to a version not listed above, then reinstall from a clean lockfile.
3.Clear caches and private mirrors. Artifactory, Nexus, Verdaccio, and devpi routinely keep serving a tarball after the public registry has pulled it.
4.Read the incident write-up above - recommended actions differ per incident, and some have specific indicators of compromise worth grepping your logs for.
Check your whole project
github.com/shopsprint/decimal is one of many packages in these incidents, and it is usually pulled in as a transitive dependency rather than one you installed directly. We don't parse Go manifests yet, but the incident write-ups list every affected package.
Version data comes from the public advisories cited on each incident page. We list only versions those advisories name - we don't infer additional ones. Think this is wrong or incomplete? Tell us.