<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/ossf_malicious_packages/10</id>
  <title>Most recent entries from ossf_malicious_packages</title>
  <updated>2026-08-22T18:36:44.510393+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14359</id>
    <title>mal-2026-14359</title>
    <updated>2026-08-22T16:16:09+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (83bdea999f71036a0bcc81d35afd4cd4b967abd5944813741a872c0420f902f1)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14359"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (83bdea999f71036a0bcc81d35afd4cd4b967abd5944813741a872c0420f902f1)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</summary>
    <published>2026-08-22T16:16:09+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14358</id>
    <title>mal-2026-14358</title>
    <updated>2026-08-22T09:47:41+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: kam193 (52bcde495e195edfc164c36aa7f704643c3171eaffc477c28de4b60c7dd2d414)
When using the provided library, the code starts a reverse shell to a hardcoded location.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-scrambleeer


Reasons (based on the campaign):


 - The package contains code to create a reverse shell, allowing an attacker to execute any commands on the victim's machine.


 - action-hidden-in-lib-usage
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14358"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: kam193 (52bcde495e195edfc164c36aa7f704643c3171eaffc477c28de4b60c7dd2d414)
When using the provided library, the code starts a reverse shell to a hardcoded location.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-scrambleeer


Reasons (based on the campaign):


 - The package contains code to create a reverse shell, allowing an attacker to execute any commands on the victim's machine.


 - action-hidden-in-lib-usage
</summary>
    <published>2026-08-22T09:47:41+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14357</id>
    <title>mal-2026-14357</title>
    <updated>2026-08-22T00:44:47+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (8ecbdcebcf83f23f4d19558c398bbc844436d2f2a186be996e8f4a43a70fc860)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14357"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (8ecbdcebcf83f23f4d19558c398bbc844436d2f2a186be996e8f4a43a70fc860)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</summary>
    <published>2026-08-22T00:44:45+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14356</id>
    <title>mal-2026-14356</title>
    <updated>2026-08-21T22:11:02+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (b7c1d6b7b99791f7bbd5999021f109bef569a6c681eda0bb6196b459b12a3808)
lumen-pages-community@9.9.9 declares a postinstall hook (`node dc.js`) that runs automatically on `npm install`. dc.js collects the installer's hostname, username, current working directory, platform, Node version, CI environment variable, and npm user-agent, then issues an HTTPS GET to a hardcoded webhook.site collector URL (https://webhook.site/b00492c6-27ba-4ea0-a9cb-dd50b3770250/dc) with those fields as query parameters. The package name plus a 9.9.9 version and no library functionality matches the dependency-confusion shape: a high-version public namesake that catches internal-name resolution and phones home from any host that resolves it. A self-labeled 'research placeholder' framing in the package description does not change the runtime behavior — installer identifiers leave the host at install time to a third-party collector the installer did not opt into.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14356"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (b7c1d6b7b99791f7bbd5999021f109bef569a6c681eda0bb6196b459b12a3808)
lumen-pages-community@9.9.9 declares a postinstall hook (`node dc.js`) that runs automatically on `npm install`. dc.js collects the installer's hostname, username, current working directory, platform, Node version, CI environment variable, and npm user-agent, then issues an HTTPS GET to a hardcoded webhook.site collector URL (https://webhook.site/b00492c6-27ba-4ea0-a9cb-dd50b3770250/dc) with those fields as query parameters. The package name plus a 9.9.9 version and no library functionality matches the dependency-confusion shape: a high-version public namesake that catches internal-name resolution and phones home from any host that resolves it. A self-labeled 'research placeholder' framing in the package description does not change the runtime behavior — installer identifiers leave the host at install time to a third-party collector the installer did not opt into.
</summary>
    <published>2026-08-21T22:11:02+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14355</id>
    <title>mal-2026-14355</title>
    <updated>2026-08-21T22:10:33+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (8e35f4772b8cba3555519c250662c67395bf57d89feed3feba7ea067b6bb2c27)
The package's postinstall.js script executes automatically on npm install and collects host identity plus environment variables (os.hostname(), process.env) and transmits them via an https request. The package name mimics common React tooling but the shipped install-time behavior is host reconnaissance and environment-variable exfiltration, which frequently captures credentials such as npm tokens, CI secrets, and cloud keys present in process.env.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14355"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (8e35f4772b8cba3555519c250662c67395bf57d89feed3feba7ea067b6bb2c27)
The package's postinstall.js script executes automatically on npm install and collects host identity plus environment variables (os.hostname(), process.env) and transmits them via an https request. The package name mimics common React tooling but the shipped install-time behavior is host reconnaissance and environment-variable exfiltration, which frequently captures credentials such as npm tokens, CI secrets, and cloud keys present in process.env.
</summary>
    <published>2026-08-21T22:10:33+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14354</id>
    <title>mal-2026-14354</title>
    <updated>2026-08-21T22:44:44.916185+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (ede654bccc4eb022f9faa5ceb79107da8ad0b1950db970b62de9771ec11428c4)
kelly-sizing@0.1.1 ships a postinstall script (install-check.cjs) that fetches a JSON config from pm-trading-dev-tools-be.vercel.app/config/clob-math.json, reads a bundle URL from it, downloads a.tgz to a temp directory, extracts it, runs `npm install --omit=dev` inside the extracted tree, then require()s the extracted module and invokes syncSession(). The config URL and bundle URL are unpinned, unverified (no hash or signature), and resolve to an author-controlled host, so arbitrary code is executed on the installer's machine during `npm install`. The advertised purpose of the package (Kelly stake sizing math) does not require any external peer bundle. Cover-story naming is present: variables such as PSM_PEER_URL, peerBundle, syncSession, and a warn string referencing '[polymarket-stake-math]' — a different package name than the tarball's own `kelly-sizing` — frame the fetch-extract-install-execute chain as a benign 'install check' / 'peer sync'.

## Source: ghsa-malware (7269ec39a713db5ecffb83ef8b0e18abc658ee5f49ccf4fc119ec6a651d4c2ef)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14354"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (ede654bccc4eb022f9faa5ceb79107da8ad0b1950db970b62de9771ec11428c4)
kelly-sizing@0.1.1 ships a postinstall script (install-check.cjs) that fetches a JSON config from pm-trading-dev-tools-be.vercel.app/config/clob-math.json, reads a bundle URL from it, downloads a.tgz to a temp directory, extracts it, runs `npm install --omit=dev` inside the extracted tree, then require()s the extracted module and invokes syncSession(). The config URL and bundle URL are unpinned, unverified (no hash or signature), and resolve to an author-controlled host, so arbitrary code is executed on the installer's machine during `npm install`. The advertised purpose of the package (Kelly stake sizing math) does not require any external peer bundle. Cover-story naming is present: variables such as PSM_PEER_URL, peerBundle, syncSession, and a warn string referencing '[polymarket-stake-math]' — a different package name than the tarball's own `kelly-sizing` — frame the fetch-extract-install-execute chain as a benign 'install check' / 'peer sync'.

## Source: ghsa-malware (7269ec39a713db5ecffb83ef8b0e18abc658ee5f49ccf4fc119ec6a651d4c2ef)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</summary>
    <published>2026-08-21T16:53:36+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14353</id>
    <title>mal-2026-14353</title>
    <updated>2026-08-21T14:49:31+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (22abe9bf1ccb266833585bda205a07bc5c9a728763a733aa48b08fe50b640b4e)
All three npm lifecycle hooks (preinstall, install, postinstall) invoke install.js, which POSTs the installer's hostname, OS username, current working directory, timestamp, and hook name to a hardcoded webhook.site collector at https://webhook.site/df384ffa-1094-4bbf-a202-e8b345b3ed18/gfe. The exfiltration fires automatically on `npm install` with no caller consent and no configuration. The package's `main` is a no-op `createWatcher` stub, so a build that resolves this scoped name silently succeeds while host identifiers are leaked. The scoped `@gfe/*` name combined with the no-op stub and the install-time beacon is the canonical dependency-confusion shape: any organization whose private `@gfe/lx-watcher` resolves against the public registry leaks host, username, and install-path metadata to the author-controlled collector.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14353"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (22abe9bf1ccb266833585bda205a07bc5c9a728763a733aa48b08fe50b640b4e)
All three npm lifecycle hooks (preinstall, install, postinstall) invoke install.js, which POSTs the installer's hostname, OS username, current working directory, timestamp, and hook name to a hardcoded webhook.site collector at https://webhook.site/df384ffa-1094-4bbf-a202-e8b345b3ed18/gfe. The exfiltration fires automatically on `npm install` with no caller consent and no configuration. The package's `main` is a no-op `createWatcher` stub, so a build that resolves this scoped name silently succeeds while host identifiers are leaked. The scoped `@gfe/*` name combined with the no-op stub and the install-time beacon is the canonical dependency-confusion shape: any organization whose private `@gfe/lx-watcher` resolves against the public registry leaks host, username, and install-path metadata to the author-controlled collector.
</summary>
    <published>2026-08-21T14:29:13+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14352</id>
    <title>mal-2026-14352</title>
    <updated>2026-08-21T11:14:21+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (79e0ff5f0f262183ad479be0192e80c15d1ab31b57d76ea96aa00fad31a95550)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14352"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: ghsa-malware (79e0ff5f0f262183ad479be0192e80c15d1ab31b57d76ea96aa00fad31a95550)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
</summary>
    <published>2026-08-21T11:14:21+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14351</id>
    <title>mal-2026-14351</title>
    <updated>2026-08-21T14:49:38.696901+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (f971c743a8c6661c9078bdb6486843bb50831fadf9a9a6943e8231fac374ac2f)
requests-crypt wraps an HTTP client so that every JSON response passes through a DataProcessor that reads a configurable field (default 'cos') from the response body, base64-decodes its string value, and passes the result to exec() on the caller's host. The processor runs on every request made through the client, silent mode is on by default (the field is stripped from the returned object so callers never see the injected payload), and the package disables its logger at import time so exec errors are suppressed. A second path, add_processor(trigger, code) and set_default_processor(code), stores raw Python source strings that DataProcessor.process later exec()s when a matching endpoint returns, with errors swallowed by a bare except. Any HTTP server the client talks to — including a compromised upstream or an on-path attacker able to inject a 'cos' field into any JSON response — obtains arbitrary code execution on the host using the library.

## Source: kam193 (eee14db4ceeeedc62311a8926bc641b77f2cce3345e5f9b6083663f8931cb92b)
The package contains a hidden backdoor. The promised functionality is an HTTP request library with some additional functions. On every usage, code secretly checks for the presence of specific fields in the response, and if they are found, their content is secretly executed.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-reqcrypt


Reasons (based on the campaign):


 - backdoor
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14351"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (f971c743a8c6661c9078bdb6486843bb50831fadf9a9a6943e8231fac374ac2f)
requests-crypt wraps an HTTP client so that every JSON response passes through a DataProcessor that reads a configurable field (default 'cos') from the response body, base64-decodes its string value, and passes the result to exec() on the caller's host. The processor runs on every request made through the client, silent mode is on by default (the field is stripped from the returned object so callers never see the injected payload), and the package disables its logger at import time so exec errors are suppressed. A second path, add_processor(trigger, code) and set_default_processor(code), stores raw Python source strings that DataProcessor.process later exec()s when a matching endpoint returns, with errors swallowed by a bare except. Any HTTP server the client talks to — including a compromised upstream or an on-path attacker able to inject a 'cos' field into any JSON response — obtains arbitrary code execution on the host using the library.

## Source: kam193 (eee14db4ceeeedc62311a8926bc641b77f2cce3345e5f9b6083663f8931cb92b)
The package contains a hidden backdoor. The promised functionality is an HTTP request library with some additional functions. On every usage, code secretly checks for the presence of specific fields in the response, and if they are found, their content is secretly executed.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-reqcrypt


Reasons (based on the campaign):


 - backdoor
</summary>
    <published>2026-08-21T10:33:24+00:00</published>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/mal-2026-14350</id>
    <title>mal-2026-14350</title>
    <updated>2026-08-21T14:49:38.709883+00:00</updated>
    <content>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (7eb0e96b324df04d5ecaf0739dec60dcb2367a26def0e713519c51e24ee790df)
The package advertises a numeric shuffle utility but its sole public function scrambleeer() opens a TCP socket to bax.h4x.tv on port 6363, dup2's the socket over stdin/stdout/stderr, and spawns /bin/bash via pty. Invoking the documented API therefore hands an interactive shell on the caller's host to the operator of bax.h4x.tv. The payload is compressed onto a single semicolon-separated line inside an otherwise innocuous shuffle routine, concealing the backdoor from casual review.

## Source: kam193 (52d5b1e99e57b038247cf3b7f86a7514e75275a095ca3f3cf044d80cbe999472)
When using the provided library, the code starts a reverse shell to a hardcoded location.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-scrambleeer


Reasons (based on the campaign):


 - The package contains code to create a reverse shell, allowing an attacker to execute any commands on the victim's machine.


 - action-hidden-in-lib-usage
</content>
    <link href="https://vulnerability.circl.lu/vuln/mal-2026-14350"/>
    <summary>
---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (7eb0e96b324df04d5ecaf0739dec60dcb2367a26def0e713519c51e24ee790df)
The package advertises a numeric shuffle utility but its sole public function scrambleeer() opens a TCP socket to bax.h4x.tv on port 6363, dup2's the socket over stdin/stdout/stderr, and spawns /bin/bash via pty. Invoking the documented API therefore hands an interactive shell on the caller's host to the operator of bax.h4x.tv. The payload is compressed onto a single semicolon-separated line inside an otherwise innocuous shuffle routine, concealing the backdoor from casual review.

## Source: kam193 (52d5b1e99e57b038247cf3b7f86a7514e75275a095ca3f3cf044d80cbe999472)
When using the provided library, the code starts a reverse shell to a hardcoded location.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-scrambleeer


Reasons (based on the campaign):


 - The package contains code to create a reverse shell, allowing an attacker to execute any commands on the victim's machine.


 - action-hidden-in-lib-usage
</summary>
    <published>2026-08-21T09:31:52+00:00</published>
  </entry>
</feed>
