MAL-2026-10780

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/data-parser-utils/MAL-2026-10780.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10780
Published
2026-07-19T19:51:18Z
Modified
2026-08-04T22:05:24Z
Summary
Malicious code in data-parser-utils (PyPI)
Details

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

Source: amazon-inspector (e63ddac8a229de35d497a342d918dbf4255d76e932db5ac33f1cf7db1a9e1939)

The package's advertised parse_xml/parse_json functions invoke an internal _check_environment() routine that, after a host-uptime sandbox-evasion gate (>300 seconds; reads /proc/uptime on Linux, GetTickCount64 on Windows, sysctl kern.boottime on macOS), fetches a hex-encoded URL resolving to https://cdn.jsdelivr.net/gh/cryptonomad411/cool-utils/package.json, reads an OS/arch-keyed payload URL from that JSON, downloads the payload to /tmp/update (Linux/macOS) or %TEMP%/g.jse (Windows), and executes it via a Popen call using base64-encoded Python that urlretrieves and cscript-executes the dropper. The payload then installs cross-platform persistence: on Linux it writes a randomly-named unit to ~/.config/systemd/user/.service and enables it via systemctl --user enable --now; on macOS it drops a random ~/Library/LaunchAgents/.plist with RunAtLoad=true and launchctl-loads it; a ~/.cache/..lock mutex prevents re-runs. The stage-1 dispatcher URL, the string 'subprocess', shell commands (wget -q -O /tmp/update, curl -s -o /tmp/update), and the Windows dropper one-liner are stored as hex and base64 literals decoded at runtime, with no legitimate purpose for a JSON/XML parser.

Source: kam193 (55aca4874dc8f9716a1fb1dc61088cf485bee1b7a1ec8a5dc8c19aabff2c71fd)

If using the provided functionality like parse_json or parse_xml functions, the package will install a Mythic/Poseidon C2 framework beacon and ensure its persistence. After installation, the beacon communicates with C2 on wegoexchange[.]site for further commands.


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

Campaign: 2026-07-tennacity

Reasons (based on the campaign):

  • typosquatting

  • Downloads and executes a remote executable.

  • The package contains code to detect if it is running in a sandbox environment.

  • malware

  • persistence

Database specific
{
    "iocs": {
        "domains": [
            "wegoexchange.site",
            "easyswapnow.pro",
            "easyswasnow.pro"
        ],
        "urls": [
            "https://easyswapnow.pro/downloads/lix_amd.bin",
            "https://easyswapnow.pro/downloads/lix_arm.bin",
            "https://easyswapnow.pro/downloads/mac_amd.bin",
            "https://easyswapnow.pro/downloads/mac_arm.bin",
            "https://easyswasnow.pro/downloads/lix_amd.bin",
            "https://easyswasnow.pro/downloads/lix_arm.bin",
            "https://easyswasnow.pro/downloads/mac_amd.bin",
            "https://easyswasnow.pro/downloads/mac_arm.bin",
            "https://drive.google.com/uc?export=download&id=1d4zF8lnDaYCgzRrEx3WCyLTFZXVD2QBF&confirm=t",
            "http://wegoexchange.site/data",
            "https://cdn.jsdelivr.net/gh/cryptonomad411/cool-utils/package.json"
        ]
    },
    "malicious-packages-origins": [
        {
            "id": "pypi/2026-07-tennacity/data-parser-utils",
            "import_time": "2026-07-19T20:20:30.622069601Z",
            "modified_time": "2026-07-19T19:51:18.396925Z",
            "sha256": "55aca4874dc8f9716a1fb1dc61088cf485bee1b7a1ec8a5dc8c19aabff2c71fd",
            "source": "kam193",
            "versions": [
                "2.4.1"
            ]
        },
        {
            "id": "IN-MAL-2026-011009",
            "import_time": "2026-08-04T21:33:13.41401823Z",
            "modified_time": "2026-08-04T21:19:11Z",
            "sha256": "e63ddac8a229de35d497a342d918dbf4255d76e932db5ac33f1cf7db1a9e1939",
            "source": "amazon-inspector",
            "versions": [
                "2.4.1"
            ]
        }
    ]
}
References
Credits

Affected packages

PyPI / data-parser-utils

Package

Name
data-parser-utils
View open source insights on deps.dev
Purl
pkg:pypi/data-parser-utils

Affected ranges

Affected versions

2.*
2.4.1

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": "data_parser/core.py",
            "sha256": "72ada231563acc1eb81576f9ad3873b33a2b80fd463f461aa05279478f068421",
            "tlsh": "5a0295215c43584206b5919e0d96c871e32ea2432f32081bb9ec51a9eff5c23daf76ad"
        }
    ],
    "package_integrity": [
        {
            "filename": "data_parser_utils-2.4.1-py3-none-any.whl",
            "hashes": {
                "blake2b_256": "48fcefae7ed91ed008403e5929f18445614b14740173fef7b6ad160f2785f849",
                "md5": "2e3db93b64b6733991179add22541a33",
                "sha256": "2cf01244fbcac131fd7ec32868a6afebf53f442b60067fcf5283b1547db847d1"
            }
        },
        {
            "filename": "data_parser_utils-2.4.1.tar.gz",
            "hashes": {
                "blake2b_256": "7367b8d02bee572e26a9c04b9e0f7b18ea543f4bc34bae8a5e05712d4f3945fd",
                "md5": "b759d75800b4023548bdcc8b82ae6fd9",
                "sha256": "d59f0be0fd2be4cb3ad9b57af657762d34e284fd11e70f423fa6211c339eeec5"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/data-parser-utils/MAL-2026-10780.json"