Safeguard
Supply Chain•

event-stream (2018): when a maintainer hands over a package

What the public GitHub thread shows about flatmap-stream in event-stream, the handover the maintainer described, and how to handle ownership changes.

Safeguard Security Team
3 min read

In November 2018, a GitHub issue reported that event-stream pulled in a malicious dependency, flatmap-stream. The maintainer wrote that someone emailed to offer to maintain the module and he handed it over. The thread is a record of how little checking a handover needed.

What the thread shows

The issue was opened on 20 November 2018. It reports a malicious payload in flatmap-stream 0.1.1, brought in by event-stream, and says users were affected only if flatmap-stream appeared in their dependency tree. It names event-stream 3.3.6 as a version that pulled it in, and recommends event-stream 3.3.4. A later edit notes npm removed the malicious version.

The issue author alleged that flatmap-stream was added by a new account, had no downloads before use and had a single commit across three versions. The thread presents those claims without verification, and several commenters said the analysis was incomplete.

The handover

The maintainer, in the thread, wrote that someone emailed offering to maintain the module and he gave it to them, that he no longer used it, and that he no longer had publish rights. Another user noted the new account appeared in the owner list.

Nothing in that account describes a hack. It describes trust extended to a stranger who asked.

The payload

According to the thread, early analysis showed the code ran only when the package description matched a specific value, which was used as a decryption key. Later comments quote a description of a secure bitcoin wallet and code aimed at wallet related data. Commenters said the decoded code read wallet data from browser storage and posted it to two hosts. The thread notes these decodings were unverified, so treat the target as reported, not proven.

What this teaches consumers

  • Watch for ownership changes and new maintainers on packages you depend on. A new maintainer is a reason to read the next diff.
  • Look at what a new transitive dependency does when it first appears in a lockfile diff.
  • Packages with no history that suddenly appear in a popular tree deserve a look.
  • Check maintainer health signals before adopting something critical.

What this teaches maintainers

If you want to step away, say so publicly, hand over to someone with a track record, transfer through the registry with a second maintainer involved, and archive the project if no one suitable exists. Writing "this package is no longer maintained" is a legitimate and safe outcome. For the other side of the same problem, see maintainer burnout signs.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how an unfamiliar transitive package would show up in your list.

Quick check

How would I know if I had flatmap-stream?

Run npm ls flatmap-stream and check lockfiles. The thread posted that approach.

Was the original maintainer hacked?

The maintainer's own comment describes giving the package to someone who asked. The thread does not claim a hack.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.