MAL-2026-17897

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fromthehotel-poems/MAL-2026-17897.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-17897
Published
2026-10-16T05:58:04Z
Modified
2026-10-29T13:48:11Z
Summary
Malicious code in fromthehotel-poems (PyPI)
Details

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

Source: amazon-inspector (475b2190d4001e511377932ffc1a8ce15c6003305c057837911b9ebae0699e48)

The package's documented public API getdaily() performs an HTTPS fetch to https://login.fromthehotel.com/api/poems/code, passes the response body to compile() and exec() in the caller's process, and then invokes get_daily_poem from the resulting namespace. The README presents getdaily() as a poem-fetching helper, so callers invoking the advertised API unknowingly execute Python source served by that endpoint. The fetched code is unpinned and there is no hash or signature verification, so whoever controls login.fromthehotel.com — or anyone able to tamper with the response — controls arbitrary code execution on every host that calls getdaily(). The exec runs with the caller's full process privileges and has unrestricted access to environment variables, filesystem, and network.

Source: kam193 (bf72dad3e2f32ee2e66a3a5ee5642b4a20a9fb9458fcd677f6250b1e4b805906)

One of the provided functions hides executing remote code from a newly created domain. During analysis, the remote code did not contain any malicious action. The description and other endpoints clearly suggest it's an attempt to exploit LLM agent like Muse. In one of the hosted instructions, the agent is instructed to download a self-hosted package depending on published code and trigger the code execution action.


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

Campaign: 2026-10-fromthehotel-poems

Reasons (based on the campaign):

  • Downloads and executes a remote malicious script.

  • llm-threat

  • action-hidden-in-lib-usage

Database specific
{
    "iocs": {
        "domains": [
            "login.fromthehotel.com"
        ],
        "urls": [
            "https://login.fromthehotel.com/api/poems/code",
            "https://login.fromthehotel.com/api/art/downloads/art_fromthehotel-0.1.0-py3-none-any.whl",
            "https://login.fromthehotel.com/muse"
        ]
    },
    "malicious-packages-origins": [
        {
            "id": "pypi/2026-10-fromthehotel-poems/fromthehotel-poems",
            "import_time": "2026-10-16T06:29:57.579755498Z",
            "modified_time": "2026-10-16T05:58:04.342377Z",
            "sha256": "bf72dad3e2f32ee2e66a3a5ee5642b4a20a9fb9458fcd677f6250b1e4b805906",
            "source": "kam193",
            "versions": [
                "0.1.0"
            ]
        },
        {
            "id": "IN-MAL-2026-021899",
            "import_time": "2026-10-29T13:37:15.765374767Z",
            "modified_time": "2026-10-29T13:22:34Z",
            "sha256": "475b2190d4001e511377932ffc1a8ce15c6003305c057837911b9ebae0699e48",
            "source": "amazon-inspector",
            "versions": [
                "0.1.0"
            ]
        }
    ]
}
References
Credits

Affected packages

PyPI / fromthehotel-poems

Package

Name
fromthehotel-poems
View open source insights on deps.dev
Purl
pkg:pypi/fromthehotel-poems

Affected ranges

Affected versions

0.*
0.1.0

Database specific

cwes
[
    {
        "cweId": "CWE-506",
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "src/fromthehotel_poems/__init__.py",
            "sha256": "7193cded0ba28eafb5d996ae85f05583df869ab653151384c7f18cfa9771cb43",
            "tlsh": "5d4196579a81a843c3e7c4a85556e782b3aabb0fb950a6f57c0c55dd2f88173e0e008c"
        }
    ],
    "package_integrity": [
        {
            "filename": "fromthehotel_poems-0.1.0-py3-none-any.whl",
            "hashes": {
                "blake2b_256": "5367e32dfc99f0b0bf56a1eea5a2a81b727a991a6e80e61c86d3632b8efed63d",
                "md5": "ffa7c224b9bf8d70d36893d109b713d2",
                "sha256": "f47f877c8a66c277e2999a8f4751fef518185a2f1c45355f527701200426eeb1"
            }
        },
        {
            "filename": "fromthehotel_poems-0.1.0.tar.gz",
            "hashes": {
                "blake2b_256": "3ca97ea4e51bcfc1d8ce674218d2d9c57cd3e70e1716bb53404e35711a10befd",
                "md5": "dc5a5681534fddf6ab75ad8d3e0b5128",
                "sha256": "72d1382e2f993748ecc2d0b0c75d1dca83d95186f26c898d46c32e900aa17108"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/fromthehotel-poems/MAL-2026-17897.json"