frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Offical XRP NPM package has been compromised and key stealing malware introduced

https://www.aikido.dev/blog/xrp-supplychain-attack-official-npm-package-infected-with-crypto-stealing-backdoor
55•flxga•10mo ago

Comments

MichealCodes•10mo ago
Cryptocurrency packages used at scale should have wallet decoys setup for early detection of vulnerabilities like this.
nailer•10mo ago
Red teaming this, you’d delay exfiltration of the private key until the balance passes beyond a certain amount and you’re on mainnet.
ohgr•10mo ago
I see the model of "download any old shit off the internet and run it in production" is working out so well.
nailer•10mo ago
I don’t have much opinion of XRP but this is their official package, not a community package.
tobyhinloopen•10mo ago
Fun fact: installing some common starter packages will explode to install over a 1000 npm packages, each of them can inject malware, even if the package isn’t used, and you’ll never know.

Many packages will have over a 100 dependencies if you include the dev dependencies, so you can easily break a 1000.

mouse_•10mo ago
That is a very fun fact.
nailer•10mo ago
Yes that is how dependencies work.
poincaredisk•10mo ago
The crazy part here is that in most other ecosystems 100 dependencies is "crazy high" territory, and in JS it's apparently "we're just getting started". It's known for its approach to micropackaging everything in a separate library.
greatgib•10mo ago
The crazy thing is more that multiple versions of the same package could be installed as dependencies of dependencies...

They were thinking to be the cool kids supporting multiple versions and that the old way to do packaging, like debian and co that expects everyone to use the same version, was the old legacy fart way to do things.

Just, developers before were engineers first and so designed things well especially to avoid this situation of dependency hell and supply chain injection. But the web dev crowd decided to do "better" and now to have old problems as new problems...

nailer•10mo ago
npm design allows multiple versions of the same package if required, but deduplicates otherwise. It’s a smart design that more package managers should and will follow.

Smart developers spend their time working on original code rather than rewriting the wheel.

nailer•10mo ago
Yes. It’s an engineering failure to have multiple copies of the same logic. That isn’t specific to JavaScript.
tough•10mo ago
does the postinstall script step has anything to do with this?

i noticed bun doesn't run them by default unless you whitelist them

koolba•10mo ago
That fetch(…) is sending the mnemonic of the private key out to that remote server.

Interestingly if this is happening in a long running process and that exploit server is offline, the promise for the fetch will reject. And the default behavior for unhandled promise rejections would be for the node process to crash.

So if anybody tried testing this version of the library in a net gapped environment, it would crash and fail out in CI.

The attacker should have silenced the error with a .catch(_ => {}).

mschuster91•10mo ago
> Previously only the packed JavaScript code had been modified.

Honestly it's time for the npm ecosystem to move to a model where only build agents running on npm's own infrastructure can upload binary artifacts, or to mandate reproducible builds.

And for a select set of highly used packages, someone from NPM should be paid to look over each release's changeset.

Both would have massively impeded the attacker.

mindcrash•10mo ago
Official and thorough support for SBOM* within major package repositories can not come sooner.

* https://en.wikipedia.org/wiki/Software_supply_chain

abhisek•10mo ago
We run similar npm package monitors. The use of exotic tld domains such as 0x9c.xyz kind of gave it away because YARA Forge rules have native signatures to detect such domains.

It will be interesting t explore how the project got compromised and malicious packages published to the registry.

nailer•10mo ago
.xyz isn’t exotic for blockchains.

HTTP/3 on FreeBSD: Getting QUIC Working with Nginx in a Bastille Jail

https://blog.hofstede.it/http3-on-freebsd-getting-quic-working-with-nginx-in-a-bastille-jail/
1•fanf2•1m ago•0 comments

Let's (Re)Think PRs

https://www.arunoda.me/blog/lets-rethink-prs
1•arunoda•2m ago•0 comments

CVE-2025-67736 FreePBX Authenticated SQL Injection Leads to RCE

https://theyhack.me/CVE-2025-67736-FreePBX-Authenticated-SQL-Injection/
1•WeaklingOra•2m ago•0 comments

Nifty and Its Derivatives; and Arbitrage

https://badpallod.substack.com/p/nifty-and-its-derivatives-and-arbitrage
1•kn81198•5m ago•0 comments

Show HN: World Monitor App

https://worldmonitor.app/
1•Fake4d•5m ago•0 comments

Why Are American Passenger Trains Slow?

https://americanaffairsjournal.org/2026/02/why-are-american-passenger-trains-slow/
1•mikebike•5m ago•0 comments

Monames – CodeNames with Your AI

https://adpreese.github.io/monames/dist/
1•adpreese•6m ago•0 comments

CashMate – a free, ad-free expense tracker with no servers

https://cashmate.periwin.com/
1•anilpoudyal•6m ago•1 comments

Ritual of the Calling of an Engineer

https://en.wikipedia.org/wiki/Calling_of_an_Engineer
1•joebig•7m ago•0 comments

The Python Book = Interactive Python Tutorial from Basic to Expert

https://pythoncompiler.io/python/getting-started/
1•selva86•8m ago•1 comments

Show HN: AppFeedBackScratch – Reciprocal Feedback for Indie Developers

https://app-feed-back-scratch.vercel.app/
1•splurk•10m ago•1 comments

Show HN: SharpSkill – LeetCode Alternative to Optimize Success in Tech ITW

https://sharpskill.fr/en
1•CocoZozo•13m ago•1 comments

Show HN: Mujoco React

https://github.com/noah-wardlow/mujoco-react
1•noahwardlow•14m ago•0 comments

Benchmarks for concurrent hash map implementations in Go

https://github.com/puzpuzpuz/go-concurrent-map-bench
1•platzhirsch•14m ago•0 comments

Human=True

https://blog.codemine.be/posts/2026/20260222-be-quiet/
1•avh3•16m ago•0 comments

Affirming Life While Opposing the Ethics of Procreation

https://toolong.co/s/v41ufalb
2•a_void_sky•18m ago•0 comments

Show HN: Adaptive WebServer Protection- Qriton Shield

https://shield.qriton.com/
1•ddmma•19m ago•0 comments

Game-Ready Voxel Meshes with Low-Cost AI

https://www.tyleo.com/blog/game-ready-voxel-meshes-with-low-cost-ai
1•tyleo•19m ago•0 comments

Show HN: 3DIMLI – No-code storefront builder for digital products (beta)

https://www.3dimli.com/
1•arpit077•19m ago•1 comments

Biweekly Pay Schedule 2026 – Complete Payroll Calendar with All Pay Dates

https://saveku.com/blog/biweekly-pay-schedule-2026-complete-payroll-calendar-with-all-pay-dates
1•roywj•20m ago•0 comments

From Cloudflare's Markdown for Agents to a Universal HTML→Markdown Extractor

https://github.com/frumu-ai/tandem
1•frumu•20m ago•1 comments

First mature Helm MCP (native Helm SDK v3 and v4)

https://pypi.org/project/helm-mcp/
1•api-py•20m ago•0 comments

Giant DNA viruses encode a translation initiation complex like eukaryotic life

https://www.cell.com/cell/fulltext/S0092-8674(26)00055-3
2•PaulHoule•21m ago•0 comments

I've implemented GSD to my build workflow. Any tips how to benefit the system?

https://twitter.com/borakaizen/status/2025631741567021182
1•kaizenb•21m ago•0 comments

MDIR: What If a Single Model Could Debate Itself Before Answering?

https://contactn8n410-del.github.io/basetools/article3.html
1•solscan_dev•22m ago•0 comments

How Ads evolved in this trendy world

https://dailyscratchpad.substack.com/p/ambuja-cement
1•sujayk_33•22m ago•0 comments

BDD (and Standard Cucumber Steps) Is a Great Fit for AI Agentic Coding

https://github.com/robmoffat/standard-cucumber-steps/blob/main/docs/agentic-coding.md
1•bobm_kite9•22m ago•0 comments

Fresh File Explorer – VS Code extension for navigating recent work

https://github.com/FreHu/vscode-fresh-file-explorer
6•frehu•23m ago•2 comments

Oxford breakthrough could make lithium-ion batteries charge faster

https://www.sciencedaily.com/releases/2026/02/260220010830.htm
2•jonbaer•23m ago•0 comments

Show HN: Winstack-truthlock – a CLI to lint AI responses for unsupported facts

https://github.com/Wise-Est-Systems/winstack-truthlock
1•Wise-Est-System•24m ago•0 comments