{"id":"MAL-2026-15938","title":"Malicious code in dac-tools (PyPI)","summary":"Malicious code in dac-tools (PyPI)","severity":"critical","exploited":true,"vendor":"dac-tools","product":"dac-tools","ecosystem":"pip","affected":["dac-tools"],"published":"2026-09-06","updated":"2026-09-08","sourceUpdated":"2026-09-08T19:30:04.771256516Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/MAL-2026-15938","references":[{"url":"https://bad-packages.kam193.eu/pypi/package/dac-tools"},{"url":"https://pypi.org/project/dac-tools/999.0.0/"}],"tags":["osv","pip","malware"],"ingestedAt":"2026-09-06T19:34:32.530Z","slug":"MAL-2026-15938","body":"## Overview\n\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (203490886d6928aee2c8d681d282f53d8513907b30be5e5e20fe1effb5fd21d2)\nOn import of dac_tools, the top-level __init__.py executes `whoami` and `hostname` via subprocess, concatenates the results into a DNS label, and triggers socket.getaddrinfo against `<label>.depconf-dac.dac2vlrk5gm3aemg9ptgq3kye1ky9kd4e.p.0xy.us`, causing the installer's OS username and hostname to be transmitted to an attacker-controlled authoritative DNS server on every import. A second beacon in CDHApiClient.get_project_credentials_with_client_credentials performs a DNS lookup to `cdh-intercept.depconf-dac.dac2vlrk5gm3aemg9ptgq3kye1ky9kd4e.p.0xy.us` and returns fabricated AWS credentials, mimicking an internal `cdh_api_client` API surface so that any caller invoking the shim signals the attacker. The package name shadows an internal dependency and is published at version 999.0.0 to win resolution against the internal package - the canonical dependency-confusion shape.\n\n## Source: kam193 (21c38f5fc2ee894120161023d576dd3d54bb373ab89baa04b1d1ed8c54b7a1c3)\nInstalling the package or importing the module exfiltrates basic information about the host, and the package has no other purpose.\n\n\n---\n\nCategory: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.\n\n\nCampaign: GENERIC-standard-pypi-install-pentest\n\n\nReasons (based on the campaign):\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n## Source: ossf-package-analysis (fced1eb56b721b98d444549899dd7cd86f36478adc0ed132c99b601155c6331f)\nThe OpenSSF Package Analysis project identified 'dac-tools' @ 999.0.0 (pypi) as malicious.\n\nIt is considered malicious because:\n\n- The package executes one or more commands associated with malicious behavior.\n\n\n## Affected packages\n\n- `dac-tools`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"abyssal","depthScore":70,"depthScoreParts":{"impact":52.3,"likelihood":0,"exploitation":18,"ransomware":0},"changes":[{"seq":5556,"id":"MAL-2026-15938","ts":1788887299278,"field":"exploited","old":"false","new":"true"},{"seq":5555,"id":"MAL-2026-15938","ts":1788887299278,"field":"severity","old":"none","new":"critical"},{"seq":4431,"id":"MAL-2026-15938","ts":1788886405440,"field":"exploited","old":"true","new":"false"},{"seq":4430,"id":"MAL-2026-15938","ts":1788886405440,"field":"severity","old":"critical","new":"none"},{"seq":3140,"id":"MAL-2026-15938","ts":1788883070264,"field":"exploited","old":"false","new":"true"},{"seq":3139,"id":"MAL-2026-15938","ts":1788883070264,"field":"severity","old":"none","new":"critical"},{"seq":2169,"id":"MAL-2026-15938","ts":1788882473282,"field":"exploited","old":"true","new":"false"},{"seq":2168,"id":"MAL-2026-15938","ts":1788882473282,"field":"severity","old":"critical","new":"none"},{"seq":1198,"id":"MAL-2026-15938","ts":1788882105787,"field":"exploited","old":"false","new":"true"},{"seq":1197,"id":"MAL-2026-15938","ts":1788882105787,"field":"severity","old":"none","new":"critical"}]}