MAL-2026-18242

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/sitecard/MAL-2026-18242.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-18242
Published
2026-10-23T16:30:56Z
Modified
2026-10-29T14:45:11Z
Summary
Malicious code in sitecard (PyPI)
Details

-= Per source details. Do not edit below this line.=-

Source: amazon-inspector (d9f44333ae4aa62e60d153dfbdc535cd08f778e917a1052ecaf43722d8a7165d)

sitecard exposes a workspace directory over SSH via public relays (srv.us, upterm, cloudflare/cloudflared, devtunnel, ws-relay) as its advertised function. When the operator runs sitecard start without --rendezvous-url, _resolve_rendezvous_url falls back to a hardcoded default RENDEZVOUS_DEFAULT_URL = "https://ntfy.sh/02f9fe8a5cd9627395798443a235896b", and _publish_rendezvous POSTs the readiness payload (including the auto-generated public SSH endpoint URL for the running session) to that URL via urllib.request.urlopen. ntfy.sh topics are public pub-sub, so any subscriber of this fixed topic id receives every default-configured installer's live SSH endpoint. The README documents --rendezvous-url as an operator override but does not disclose that a built-in default collector topic is used when it is omitted. Separately, _resolve_public_access defaults to True under the sitecard distribution and the asyncssh gateway's begin_auth returns False when accept=True, so by default the exposed SSH endpoint admits any connection without authentication; this behavior is disclosed in the README ("Fresh Sitecard sessions allow public access by default because they are disposable"). The combination means that on a default foreground invocation the installer's workspace is reachable over SSH without authentication and the endpoint URL is simultaneously published to a hardcoded author-chosen ntfy.sh topic. The remote-shell capability only starts when the operator runs the CLI (no install-time or import-time hook), no bulk collection of installer secrets occurs, and the rendezvous destination is operator-configurable.

Source: kam193 (49be8995374d0e3d2bcb8f163675221e14bfb6d7d968a6fa5d8165e4f493997d)

The package provides code to create an SSH session exposed via tunnels. By default, created session is accessible without any auth and reported to a hardcoded location, exposing any user to be accessed by attacker.


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

Campaign: 2026-10-sitecard

Reasons (based on the campaign):

  • backdoor
Database specific
{
    "malicious-packages-origins": [
        {
            "id": "pypi/2026-10-sitecard/sitecard",
            "import_time": "2026-10-23T17:15:33.206654697Z",
            "modified_time": "2026-10-23T16:30:56.396384Z",
            "sha256": "49be8995374d0e3d2bcb8f163675221e14bfb6d7d968a6fa5d8165e4f493997d",
            "source": "kam193",
            "versions": [
                "0.1.0",
                "0.1.1",
                "0.1.2",
                "0.1.3",
                "0.1.6",
                "0.1.7",
                "0.1.8",
                "0.1.9",
                "0.1.10",
                "0.1.11",
                "0.1.12",
                "0.1.13",
                "0.1.14"
            ]
        },
        {
            "id": "IN-MAL-2026-021968",
            "import_time": "2026-10-29T13:37:18.272903467Z",
            "modified_time": "2026-10-29T13:31:36Z",
            "sha256": "800ca56da042abfa6ec71645a0e153fd8adf11eef4078de031c66279656675f3",
            "source": "amazon-inspector",
            "versions": [
                "0.1.0"
            ]
        },
        {
            "id": "IN-MAL-2026-021963",
            "import_time": "2026-10-29T13:37:18.101615235Z",
            "modified_time": "2026-10-29T13:30:56Z",
            "sha256": "9cdc69c2b591bc77571deeedcf1d80587c6f54a97c27f4fa5657d86bf67c2009",
            "source": "amazon-inspector",
            "versions": [
                "0.1.2"
            ]
        },
        {
            "id": "IN-MAL-2026-021991",
            "import_time": "2026-10-29T13:37:18.942225466Z",
            "modified_time": "2026-10-29T13:34:45Z",
            "sha256": "d45f68bda10777d700cc046f1af83eb2c67dd69a0a18daebd210da277888f30c",
            "source": "amazon-inspector",
            "versions": [
                "0.1.3"
            ]
        },
        {
            "id": "IN-MAL-2026-021947",
            "import_time": "2026-10-29T13:37:17.598640648Z",
            "modified_time": "2026-10-29T13:28:44Z",
            "sha256": "2d7963321797b3920632c6f6fbed91bf96861b3fbbf34fc6f09a7e7067c7be45",
            "source": "amazon-inspector",
            "versions": [
                "0.1.12"
            ]
        },
        {
            "id": "IN-MAL-2026-021960",
            "import_time": "2026-10-29T13:37:18.012485953Z",
            "modified_time": "2026-10-29T13:30:33Z",
            "sha256": "5824dd33e8689f63b2d4f19f3d9b3d2715e59e51dabe41b2a4e1522f2f3a42bc",
            "source": "amazon-inspector",
            "versions": [
                "0.1.7"
            ]
        },
        {
            "id": "IN-MAL-2026-021958",
            "import_time": "2026-10-29T13:37:17.950397907Z",
            "modified_time": "2026-10-29T13:30:15Z",
            "sha256": "d9f44333ae4aa62e60d153dfbdc535cd08f778e917a1052ecaf43722d8a7165d",
            "source": "amazon-inspector",
            "versions": [
                "0.1.14"
            ]
        },
        {
            "id": "IN-MAL-2026-021896",
            "import_time": "2026-10-29T13:37:15.567568785Z",
            "modified_time": "2026-10-29T13:22:12Z",
            "sha256": "da4c02f24310af43bc6800ef935dc6b8eb8746c95aa9518f95ff086d40f79e52",
            "source": "amazon-inspector",
            "versions": [
                "0.1.13"
            ]
        },
        {
            "id": "IN-MAL-2026-021989",
            "import_time": "2026-10-29T13:37:18.880513988Z",
            "modified_time": "2026-10-29T13:34:32Z",
            "sha256": "47c43a486076eda22f0e92f498784af0f1cf5eca33b32af1a83c82562cb68e83",
            "source": "amazon-inspector",
            "versions": [
                "0.1.1"
            ]
        },
        {
            "id": "IN-MAL-2026-021987",
            "import_time": "2026-10-29T13:37:18.797845325Z",
            "modified_time": "2026-10-29T13:34:18Z",
            "sha256": "56166fc1bb18bf4736dbd4148aaf7728a7a55b8409833745338c3ec13c68d3a8",
            "source": "amazon-inspector",
            "versions": [
                "0.1.11"
            ]
        },
        {
            "id": "IN-MAL-2026-022132",
            "import_time": "2026-10-29T14:14:28.521117917Z",
            "modified_time": "2026-10-29T13:53:01Z",
            "sha256": "7786b9a7e09164c653513db6475bd78aa97ac7d7602827ccdc82cd796387d0e7",
            "source": "amazon-inspector",
            "versions": [
                "0.1.9"
            ]
        },
        {
            "id": "IN-MAL-2026-022347",
            "import_time": "2026-10-29T14:37:05.174552714Z",
            "modified_time": "2026-10-29T14:21:04Z",
            "sha256": "0183dc1d32cc6d018103c044977224ff89b348618cb7a2a124e8af9e9a731734",
            "source": "amazon-inspector",
            "versions": [
                "0.1.8"
            ]
        },
        {
            "id": "IN-MAL-2026-022357",
            "import_time": "2026-10-29T14:37:05.580633661Z",
            "modified_time": "2026-10-29T14:22:26Z",
            "sha256": "94971d428eef53c1b554684f42b95a8351c0f44ff41b1f179cebeecd68202e03",
            "source": "amazon-inspector",
            "versions": [
                "0.1.6"
            ]
        },
        {
            "id": "IN-MAL-2026-022345",
            "import_time": "2026-10-29T14:37:05.103609195Z",
            "modified_time": "2026-10-29T14:20:50Z",
            "sha256": "f8c134e2cddb7533a3e7fe98a1e25b754d56f1cacd217976af5b3e8940449da4",
            "source": "amazon-inspector",
            "versions": [
                "0.1.10"
            ]
        }
    ]
}
References
Credits

Affected packages

PyPI / sitecard

Package

Affected ranges

Affected versions

0.*
0.1.0
0.1.1
0.1.2
0.1.3
0.1.6
0.1.7
0.1.8
0.1.9
0.1.10
0.1.11
0.1.12
0.1.13
0.1.14

Database specific

cwes
[
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    },
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "src/sitecard/gateway.py",
            "sha256": "a4070098bc39f68bb1f8b2262407c9ec6fee6e30e027cf19ab3761b0a7f0f1c7",
            "tlsh": "def2d802d91d5aa3e3c3e6688863f0136615ed431e0538747aace25c2f5e279c5f2bed"
        }
    ],
    "package_integrity": [
        {
            "filename": "sitecard-0.1.0-py3-none-any.whl",
            "hashes": {
                "blake2b_256": "7df0567d5ad04731ea4d716deb9d20c2afcde74c33322b2262da928ca290506f",
                "md5": "7079984fad39c1e3039a82ec47117dee",
                "sha256": "f9dfe626b377efe8eb5d1443b3ffeb0f3b57133e1960e79dfc093779264fc3af"
            }
        },
        {
            "filename": "sitecard-0.1.0.tar.gz",
            "hashes": {
                "blake2b_256": "448789c51561a57d3275fc4724d4754ed59fc5daafe4f37e2a7edb9ca33e5554",
                "md5": "66a465cdf751d85c904927cd5b4a298c",
                "sha256": "ea79e18cf22cc323e6f726ef7d4d8c0e6eda8e232f4d3ed3cd45c2255468d332"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/sitecard/MAL-2026-18242.json"