Skip to content
Heist/ feed
Back to feed
Unrated

Malicious code in journey-test-helloshell (PyPI)

Type: advisorySources: OSV

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (0203fffc73ebe748d6defab0472b648408b29c959a9c6813f966df48cfafb21b) setup.py registers a custom install command (cmdclass install hook) and also fires at module import that connects to the hardcoded bare-IP endpoint 137.131.233.62:8080 and bridges a /bin/bash -i subprocess over the socket, giving the operator interactive shell access on the installer's host. Before opening the shell, the code POSTs host identifiers (hostname, uid, JCX_ENVIRONMENT) over plaintext HTTP to http://137.131.233.62:443/shell-beacon. The install hook double-forks, calls setsid, redirects stdio to /dev/null, and enters an infinite reconnect loop with a 60-second sleep, persisting the backdoor beyond the pip install process. A /tmp/.jcx_channel.done guard file is used to coordinate the channel. Destination is a bare IP unrelated to any publisher domain. ## Source: kam193 (bdf4549e34df1c1c7dfd704454011cf0a26ea5807948e917d7bc65f130182fc9) In specific environments, package starts a reverse shell during installation. --- Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers. Campaign: 2026-10-journey-test-helloshell 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. - The package overrides the install command in setup.py to execute malicious code during installation. - targetted-attack

Products
journey-test-helloshell
Affected versions
0.2.0
Fixed versions
Not specified
CVEs
Not specified
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 16:37 UTC · Revision 1

Source evidence

Malicious code in journey-test-helloshell (PyPI)

core-osv · Original source

Published 21 Oct 2026, 18:30 UTC

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (0203fffc73ebe748d6defab0472b648408b29c959a9c6813f966df48cfafb21b) setup.py registers a custom install command (cmdclass install hook) and also fires at module import that connects to the hardcoded bare-IP endpoint 137.131.233.62:8080 and bridges a /bin/bash -i subprocess over the socket, giving the operator interactive shell access on the installer's host. Before opening the shell, the code POSTs host identifiers (hostname, uid, JCX_ENVIRONMENT) over plaintext HTTP to http://137.131.233.62:443/shell-beacon. The install hook double-forks, calls setsid, redirects stdio to /dev/null, and enters an infinite reconnect loop with a 60-second sleep, persisting the backdoor beyond the pip install process. A /tmp/.jcx_channel.done guard file is used to coordinate the channel. Destination is a bare IP unrelated to any publisher domain. ## Source: kam193 (bdf4549e34df1c1c7dfd704454011cf0a26ea5807948e917d7bc65f130182fc9) In specific environments, package starts a reverse shell during installation. --- Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers. Campaign: 2026-10-journey-test-helloshell 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. - The package overrides the install command in setup.py to execute malicious code during installation. - targetted-attack

osv:MAL-2026-18124

journey-test-helloshell

Fixed versions: Not specified

Complete source record
{
  "id": "91f5ad32b900068c043997708f5d45c001aedf8ed74f8b65e3a232eb334a2f23",
  "url": "https://osv.dev/vulnerability/MAL-2026-18124",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Malicious code in journey-test-helloshell (PyPI)",
    "summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (0203fffc73ebe748d6defab0472b648408b29c959a9c6813f966df48cfafb21b) setup.py registers a custom install command (cmdclass install hook) and also fires at module import that connects to the hardcoded bare-IP endpoint 137.131.233.62:8080 and bridges a /bin/bash -i subprocess over the socket, giving the operator interactive shell access on the installer's host. Before opening the shell, the code POSTs host identifiers (hostname, uid, JCX_ENVIRONMENT) over plaintext HTTP to http://137.131.233.62:443/shell-beacon. The install hook double-forks, calls setsid, redirects stdio to /dev/null, and enters an infinite reconnect loop with a 60-second sleep, persisting the backdoor beyond the pip install process. A /tmp/.jcx_channel.done guard file is used to coordinate the channel. Destination is a bare IP unrelated to any publisher domain. ## Source: kam193 (bdf4549e34df1c1c7dfd704454011cf0a26ea5807948e917d7bc65f130182fc9) In specific environments, package starts a reverse shell during installation. --- Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers. Campaign: 2026-10-journey-test-helloshell 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. - The package overrides the install command in setup.py to execute malicious code during installation. - targetted-attack",
    "evidence": "osv:MAL-2026-18124",
    "products": [
      {
        "name": {
          "value": "journey-test-helloshell",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.2.0",
            "evidence": "/affected/0/versions"
          }
        ]
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "MAL-2026-18124",
      "aliases": [
        "MAL-2026-18124"
      ],
      "affected": [
        {
          "package": {
            "name": "journey-test-helloshell",
            "purl": "pkg:pypi/journey-test-helloshell",
            "ecosystem": "PyPI"
          },
          "versions": [
            "0.2.0"
          ],
          "database_specific": {
            "cwes": [
              {
                "name": "Embedded Malicious Code",
                "cweId": "CWE-506",
                "description": "The product contains code that appears to be malicious in nature."
              }
            ],
            "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/journey-test-helloshell/MAL-2026-18124.json",
            "indicators": {
              "evidence_files": [
                {
                  "path": "setup.py",
                  "tlsh": "9de18546ed696471d383d29444328094a7b5bf17aa12a8b87eecd3087fce035c1f87e9",
                  "sha256": "96c8e2608f8bfbaafd226bef8a4e3f405fc1d1ff4dfc76d7724719f3badea586"
                }
              ],
              "package_integrity": [
                {
                  "hashes": {
                    "md5": "171fc938ad2c138479c652d2ac7975d0",
                    "sha256": "b753d8125d22b8ebaefde52da76fdd47a75c25fdbbdded7e790fce67a49a6bb6",
                    "blake2b_256": "24630d199ea7fbc9a2eed448c9b5d766e50a38dc38bd533549b7e719f015177c"
                  },
                  "filename": "journey_test_helloshell-0.2.0.tar.gz"
                }
              ]
            }
          }
        }
      ],
      "modified": "2026-10-21T22:45:05.191813107Z",
      "provider": "osv",
      "references": [
        "https://bad-packages.kam193.eu/pypi/package/journey-test-helloshell",
        "https://pypi.org/project/journey-test-helloshell/0.2.0/"
      ],
      "provider_metadata": {
        "iocs": {
          "ips": [
            "137.131.233.62"
          ],
          "urls": [
            "http://137.131.233.62:443/shell-beacon"
          ]
        },
        "malicious-packages-origins": [
          {
            "id": "pypi/2026-10-journey-test-helloshell/journey-test-helloshell",
            "sha256": "bdf4549e34df1c1c7dfd704454011cf0a26ea5807948e917d7bc65f130182fc9",
            "source": "kam193",
            "versions": [
              "0.2.0"
            ],
            "import_time": "2026-10-21T19:14:47.748725857Z",
            "modified_time": "2026-10-21T18:30:25.356628Z"
          },
          {
            "id": "IN-MAL-2026-021558",
            "sha256": "0203fffc73ebe748d6defab0472b648408b29c959a9c6813f966df48cfafb21b",
            "source": "amazon-inspector",
            "versions": [
              "0.2.0"
            ],
            "import_time": "2026-10-21T22:41:19.834574184Z",
            "modified_time": "2026-10-21T22:19:50Z"
          }
        ]
      }
    },
    "related_cves": [],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 401012,
  "published_at": "2026-10-21T18:30:25+00:00"
}