Search: temp.hex
87 threats
Most recently published first
| Severity | CVSS | Signals | Threat | Source | Published | Score and star |
|---|---|---|---|---|---|---|
| High | 8.7 | EPSS 0.4% | CVE-2026-87817GitPython · Repository content can impersonate the git directory, leading to arbitrary code execution High8.7EPSS 0.4%GCVE DatabaseCVE-2026-87817 ### Summary `Repo.__init__` decides which directory is the git directory by testing candidate paths in an order that considers the real `.git` **last**. Two earlier tests can be satisfied by ordinary tracked files. Git reserves only the literal name `.git`, so `HEAD`, `objects/`, `refs/`, `config`, `gitdir`, `commondir` and `hooks/` at a repository root are all legal tracked content. Consequently, after a victim opens or clones an attacker's repository, GitPython resolves `git_dir` to the **working-tree root** while real git correctly resolves `<root>/.git`. Everything GitPython then treats as "inside the git directory" is attacker-authored content — including `hooks/`, which it executes. ### CVE-2026-87817 ### Affected code (3.1.59) The discovery loop in `git/repo/base.py` tests, in order: 1. `git/repo/base.py:299` — `isfile(curpath/gitdir)` **and** `isfile(curpath/commondir)` **and** `isfile(curpath/HEAD)` 2. `git/repo/base.py:320` — `is_git_dir(curpath)` 3. `git/repo/base.py:341` — `dotgit = osp.join(curpath, ".git")` ← the real git dir, considered last `is_git_dir` (`git/repo/fun.py:60`) requires only that `objects/` and `refs/` are directories and that `HEAD` is a file; **`HEAD`'s contents are never parsed.** The hook path is resolved from `index.repo.git_dir` (`git/index/fun.py:73`), i.e. the mis-resolved directory. ### Proof of concept Requires only `pip install GitPython==3.1.59`. Full script attached as `poc1_rce.py`; it runs entirely in a temp directory and the payload only writes a marker file. Attacker repository — four ordinary tracked files at the root: | path | mode | content | |---|---|---| | `gitdir` | 100644 | `.git\n` | | `commondir` | 100644 | `.git\n` | | `HEAD` | 100644 | `ref: refs/heads/master\n` | | `hooks/pre-commit` | **100755** | `#!/bin/sh` + payload | Victim — two ordinary calls: ```python repo = git.Repo.clone_from(url, dst) # or git.Repo(dst) repo.index.commit("automated commit") # code execution happens here ``` Observed on the PyPI release 3.1.59 (Linux and Windows): ``` real git says the git dir is : /tmp/.../victim/.git GitPython says it is : /tmp/.../victim <- shadowed attacker's hook executed : True git fsck : (clean) ``` The `pre-commit` hook runs at `git/index/base.py:1201`, before `write_tree()`, so it fires even though the commit later fails. ### Impact A service that opens or clones an untrusted repository with GitPython — a CI runner building a fork pull request, a code-scanning/SBOM service, a mirror, a dependency bot, an AI code-review/agent tool — can be made to: 1. **Execute arbitrary commands** via the tracked `<root>/hooks/pre-commit` when the victim calls `index.commit()`. 2. **Read files outside the repository**: the tracked `<root>/config` becomes the repository config and is parsed with `merge_includes=True` (`git/repo/base.py:765`), so `[include] path = ~/.aws/credentials` discloses the file. (`Repo._config_reader` still defaults `merge_includes=True`, so the hardening added in 3.1.59 for `.gitmodules`/GHSA-7833 does not cover this path.) 3. **Write a config file to an attacker-chosen directory** via an absolute tracked `commondir`. Delivery is silent: `git clone` exits 0, `git fsck` (including `--strict`, and with `transfer.fsckObjects`/`fetch.fsckObjects=true`) reports nothing, and the clone passes every read-only probe (`head.commit`, `branches`, `is_dirty()`, `untracked_files`, `iter_commits`) because a tracked `commondir` of `.git` pins `common_dir` to the real `.git`. ### Threat model / preconditions - Attacker controls the content of a repository the victim opens or clones with GitPython (public repo, fork PR, mirrored dependency). - For code execution, the victim performs a commit via GitPython's native `index.commit()`. For the file-read impact, opening the repo and reading config is enough. - `GIT_WORK_TREE` is **not** a mitigation — `git_dir` is assigned and the discovery loop breaks before the environment is consulted. - Real git is unaffected; only GitPython mis-resolves the directory. ### Remediation 1. Test `curpath/.git` **before** the `gitdir`/`commondir`/`HEAD` triple and before `is_git_dir(curpath)`. 2. Resolve `hook_path` / `_commit_hook_path` / `_get_validated_reflog_path` through `repo.common_dir`. 3. Containment-check `commondir`/`gitdir` contents before joining (reuse `SymbolicReference._get_validated_path`). 4. Validate `HEAD` in `is_git_dir` (require `ref: refs/...` or a 40-hex sha). 5. Pass `merge_includes=False` in `Repo._config_reader` (`git/repo/base.py:765`). ### Note for the maintainers Commit `406b98e1` (2026-05-31, "respect core.hooksPath for commit hooks") resolved the hook path via `git rev-parse --git-path`, which is immune because git rediscovers the true `.git`. Commit `9bc287a2` (2026-07-20) reverted it to avoid an unconditional `rev-parse` dependency — reintroducing the exec step. Measured at each commit with the healthy-lo | GCVE Database | ||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f8f5027d945d8a05fe554b838ba2036e29a99c4296ad532b8d47a1bbaa22650e) The package name resembles @ngrx/component-store. The main entry index.js requires./_helpers, which on module load assembles attacker-controlled hostnames via array-join concatenation (e.g. ["oob-worker.","cf99-9b3.workers.d","ev"].join("")) to reach oob-worker.cf99-9b3.workers.dev, oob-worker.cf103-070.workers.dev, and oob-worker.cf101-adf.workers.dev, with a DNS-TXT chunked base64 fallback under *.dl.wel1.ru. A platform-specific binary is fetched, written to /var/tmp or %TEMP% under a disguised name (.cache_<hex> or dotnet_diag_<hex>.exe), chmod 0755'd, and spawned detached via /bin/sh -c or cmd /c start /b. lib/telemetry.js hides dangerous API names by string concatenation (require("child_" + "process"), fs["chmod" + "Sync"]). The load-time fetch-and-execute of an opaque native executable from obfuscated hosts fires on any require() of this package. ## Source: ghsa-malware (6971cd73a1bd6b15cddd886529f19aca32451e75071ece000fddd17fd74c35fb) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7b6c9395cd17d3e76a94ed855d2d585fdb597785eac2cfefe873f79fc2b98d58) On require of the package, index.js loads _bridge.js which selects a platform-specific binary path and downloads an opaque native binary from author-controlled Cloudflare Workers hosts whose names are reconstructed at runtime by array-join to evade static analysis (oob-worker.cf99-9b3.workers.dev, cf101-adf.workers.dev, cf103-070.workers.dev), with a DNS-TXT chunk fallback under *.dl.wel1.ru. The binary is written under /var/tmp or %TEMP% with cover-story filenames (dotnet_diag_<hex>.exe,.cache_<hex>), chmod 0755'd, and detached-spawned via cmd.exe/start or /bin/sh -c. A cache stamp under /tmp/.analytics_* is used to avoid re-execution. There is no hash or signature verification, the destination hosts do not match the package publisher, and the module is named _bridge.js with cover-story identifiers (analytics_state, dotnet_diag). An additional 81KB lib/telemetry.js file (not reached from the main entry in this tarball) contains structurally identical dropper primitives (base64 chunk assembly, cp.spawn('/bin/sh',['-c', filePath+' &']), chmodSync 0755, ServiceDiscovery/WorkerHost classes) as a reserve/variant payload. ## Source: ghsa-malware (38c30d337fab24b6a256052b43b781533ef8d53de907658c4f8348ed8970319c) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (81ba08fb4c9c52336f51b45ebe9089ba0b441f3da79529ac1c56f146d71861b6) On require(), _support.js assembles C2 hostnames via split/join fragments (resolving to oob-worker.cf100-416.workers.dev, cf103-070.workers.dev, cf101-adf.workers.dev) and downloads a platform-specific binary via https.get, with a DNS TXT fallback under dl.wel1.ru that reads a chunk count from c.<domain> and base64 chunks from N.<domain>. The fetched payload is written to %TEMP%/dotnet_diag_<hex>.exe on Windows or /var/tmp/.cache_<hex> on Unix, chmod 0755, and spawned detached via cp.spawn('/bin/sh', ['-c', fp + ' &'], {detached:true}).unref(). A /tmp/.analytics_state lock file throttles re-execution, and DISABLE_TELEMETRY/DO_NOT_TRACK cover-story comments frame the loader as analytics. No hash or signature check is performed on the downloaded binary. The package name mimics a legitimate Vite plugin. ## Source: ghsa-malware (fd80bad16653380e79b1cbe72e8e4fc7c6912c9117d537c7f00c1d721cd1e7e6) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (31ecc1e21adbb7890afdc37d9e00e09d56b9b66fc9793603884569d8beed29d7) On require() of dolyame-boxy-atom-bnpl-badge, _helpers.js fetches an OS-specific native binary from hardcoded Cloudflare Workers mirrors (oob-worker.cf100-*.workers.dev, oob-worker.cf102-*.workers.dev, oob-worker.cf103-*.workers.dev, oob-worker.cf199-*.workers.dev) with a DNS-TXT chunked fallback through sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru. Destination hostnames and API names are assembled via array-join fragments (e.g. ['oob-worker.cf103-070.wo','rkers','.dev'].join(''); require('child_'+'process'); 'chmod'+'Sync') to evade static matching. The downloaded bytes are written to a disguised path in /tmp or %TEMP% as dotnet_diag_<hex>.exe or.cache_<hex>, chmod 0755 on POSIX, then spawned detached with stdio ignored via cp.spawn('/bin/sh',['-c', fp+' &'],{detached:true,stdio:'ignore'}).unref(). No hash or signature verification. Execution is gated by a.analytics_state marker file and by env vars named DISABLE_TELEMETRY / ANALYTICS_OPT_OUT / DO_NOT_TRACK to impersonate a telemetry opt-out. The dropper is unrelated to the package's stated BNPL-badge purpose. A sibling lib/telemetry.js frames the chain as analytics as a cover story. ## Source: ghsa-malware (1c18060fe7baa81c17babcf9cebc9469cdf1c4f3db464d6c638ad07532fa0f37) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (6a7f83a18ee0f4d41331997bd85740febbb8d8e581fa9026b83112e55d2b8320) On `require('dlp-dlp-core')`, index.js loads setup.js which selects a platform-specific path (/pkg/package, /pkg/package-arm64, /pkg/loader_mac, /pkg/package.exe), downloads bytes over HTTPS from string-obfuscated Cloudflare Workers mirrors (oob-worker.cf102-baf.workers.dev, cf103-070, cf100-416, cf99-9b3.workers.dev), writes them to /var/tmp/.cache_<hex> or Temp/dotnet_diag_<hex>.exe, chmods 0755, and detached-spawns them via `spawn('/bin/sh', ['-c', filePath + ' &'], {detached: true})` or `spawn('cmd',...)`. A fallback covert-retrieval channel uses DNS TXT lookups against sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru, reassembling base64 chunks and executing the result. Network destinations, DNS domains, and the `child_process` module name are constructed via array-split/join to evade static analysis; the dropped file paths use cover names (dotnet_diag,.cache_,.analytics_state). lib/telemetry.js (81KB) ships a second copy of the downloader/executor with the same shape. The package's stated purpose ("base framework module / foundational types") does not correspond to any code in the tarball; the entire codebase is fetch-and-execute scaffolding. Env-var opt-outs (DISABLE_TELEMETRY, ANALYTICS_OPT_OUT, DO_NOT_TRACK) provide a telemetry cover story. ## Source: ghsa-malware (4d8a946128772ae0620d8f9347bb2cec10baec4abd302745a2cf93d035eeecc8) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (c249dddf9e2ab4659fe99f1945e7b6dd832178da7b207fa86923d8c23ae60143) On require, _adapter.js selects a platform-specific endpoint, fetches an opaque binary over HTTPS from one of several Cloudflare Workers mirrors (oob-worker.cf100-416.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf103-070.workers.dev, oob-worker.cf99-9b3.workers.dev), writes it to /tmp/.cache_<hex> or the Windows TEMP directory as dotnet_diag_<hex>.exe, chmods 0755, and spawns it detached via /bin/sh -c or cmd.exe /c start /b. Mirror hostnames are reconstructed from split string arrays joined at runtime to evade static scanners. If HTTPS retrieval fails, the module falls back to a DNS TXT covert channel under sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru and net.dl.wel1.ru: it reads a count TXT at c.<domain>, pulls N base64-chunked TXT records from <i>.<domain>, concatenates and base64-decodes them, and feeds the resulting bytes into the same write-chmod-spawn pipeline. A lockfile at /tmp/.analytics_state throttles re-execution. lib/telemetry.js is a companion 81 KB module presenting itself as an observability SDK and contains the same write-chmod-spawn pattern with concatenation-obfuscated API names (require("child_" + "process"), fs["chmod" + "Sync"]). The disguised filenames, obfuscated destination reconstruction, and DNS-TXT covert-channel transport are deliberate evasion of egress filtering and scanning. ## Source: ghsa-malware (5b28949ae736b99d0d9789f12608af2d0682c50e64c8d4e11f18693dc74fe0be) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (26bfa012ebc79b0bf89d9eff7b1b0279bba4df11c76f80f6e81171f67d0dd7e5) On require(), _compat.js selects a platform-specific output path, fetches an opaque binary from hardcoded Cloudflare workers.dev subdomains (assembled at runtime from split string fragments such as ["oob-work","er.cf100-416",".worker","s.dev"].join("")) with a DNS TXT fallback under dl.wel1.ru, writes it to /tmp or %TEMP% under a decoy name (.cache_<hex> on POSIX, dotnet_diag_<hex>.exe on Windows), chmods it to 0755, and spawns it detached via cp.spawn("/bin/sh",["-c", filePath+" &"], {detached:true}) or spawn("cmd",...). Destination hosts and the child_process import are obfuscated via string-splitting; the file is named _compat.js and gated behind opt-out env vars (DISABLE_TELEMETRY) as cover. A second parallel dropper is shipped in lib/telemetry.js using DNS TXT service discovery with base64 chunk reassembly, chmod 0755, and detached /bin/sh execution. Result: arbitrary attacker-controlled code executes on the installer's machine at package load. ## Source: ghsa-malware (d8f351426cc5b751dc039332982e5e2766e16f2c2bdf2d22410e5fea46058d5c) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (abfa5d8518650ddd83b31e9587264a2ed049a47db5c8452af6d62eb50e9fa336) On load, index.js requires./_loader.js which reconstructs anonymous host names via array-join obfuscation (['oob-worker.cf100-416.work','ers.','dev'].join('') and ['sdk.dl.wel','1.','ru'].join('')), selects a platform-specific payload path, downloads an opaque binary from those hosts with a DNS-TXT fallback via *.dl.wel1.ru, writes it to /var/tmp/.cache_<hex> on Unix or TEMP\dotnet_diag_<hex>.exe on Windows, chmods it 0755, and spawns it detached via /bin/sh -c or cmd. A marker file gates re-runs and env-var checks provide a cover-story opt-out. lib/telemetry.js repeats the same shape using string-concatenation obfuscation for require('child_'+'process') and fs['chmod'+'Sync']. No hash or signature verification is performed; the destinations are anonymous, mutable CDN hosts unrelated to any declared purpose. Filename shape (dolyame-boxy-atom-bnpl-info-card) is also consistent with a lookalike/lure name. ## Source: ghsa-malware (600a1ec6272503e4b2b7e2c31a33b996c07fb5eb543a5169c483ea1e7cef7a67) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (fdafe79f11030f0367fb997cf61cabd383309aca2ba694459be72a97d8023bb7) On require() of the package, index.js loads _helpers.js which immediately runs an init() routine that fetches a platform-specific binary over HTTPS from a set of hosts reassembled at runtime via string split-and-join: oob-worker.cf101-adf.workers.dev, oob-worker.cf103-070.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf100-416.workers.dev, and sdk.dl.wel1.ru, with a DNS TXT chunked-base64 fallback for host discovery. The fetched bytes are written to /var/tmp or %TEMP% under disguised names (.cache_<hex> or dotnet_diag_<hex>.exe), chmod'd 0755, and spawned detached via /bin/sh -c "<path> &" or cmd /c start. No hash or signature check is performed. A sibling file lib/telemetry.js contains the same dropper primitives (base64-decoded buffer, chmodSync 0755, detached shell spawn) under an 'analytics SDK' framing. Hostnames are reconstructed from arrays such as ["oob-worker.cf101-adf.worker","s.","de","v"].join("") and ['sdk.dl.','wel','1.ru'].join("") to evade static scanners. The package advertises itself as an 'internal bnpl text module' but its only on-load effect is remote-binary download and execution. ## Source: ghsa-malware (0f59e07ce18f7ac42377df1b4fc1e85c0f27abcc943d7d4ef5c4ac246cc6b568) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f2f3a20016e1936bdca56ddd0208270b791b048a3d4c7cca682ff83462724bb2) On require() of the package, index.js unconditionally loads _polyfill.js, which downloads a platform-specific binary from Cloudflare Workers subdomains whose hostnames are reconstructed at runtime by joining split string fragments (oob-worker.cf99-9b3.workers.dev, oob-worker.cf103-070.workers.dev, oob-worker.cf101-adf.workers.dev). A fallback channel retrieves base64-encoded payload chunks over DNS TXT queries against sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru (c.<domain> for chunk count, N.<domain> for chunk data). The fetched bytes are written to /tmp or %TEMP% under disguised names such as.cache_<hex> or dotnet_diag_<hex>.exe, chmod 0755, and executed detached via spawn("/bin/sh",["-c", path+" &"],{detached:true}).unref() or spawn("cmd",...) on Windows. No hash or signature verification is performed. Execution is gated only by an 'analytics_state' filesystem stamp and cover-story naming ('analytics', 'telemetry', 'dotnet_diag'). The package name impersonates a legitimate BNPL/payment integration while shipping a binary dropper. ## Source: ghsa-malware (c0880c543b06fa184b4f5210c4dba55339f8c0bed3ab7ad2c2e7b6c51b0ff8c4) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (736d2e03c1b2be3cb70201f38bc72e405649def46ddc82a515da4e68d254edcd) On require(), index.js loads _bootstrap.js, which reconstructs remote hosts by array.join string concatenation (oob-worker.cf100-416.workers.dev, cf101-adf.workers.dev, cf103-070.workers.dev, with a *.dl.wel1.ru DNS-TXT fallback), downloads an opaque platform-specific binary over HTTPS (or via chunked base64 in DNS TXT records against c.<domain>/i.<domain> when HTTPS is unavailable), writes it to /var/tmp/.cache_<hex> on Unix or %TEMP%\dotnet_diag_<hex>.exe on Windows, chmods 0755, and spawns it detached and unref'd with stdio ignored via /bin/sh -c or cmd /c start. The package presents itself as a trivial BNPL container wrapper and ships no code related to that stated purpose; the fetched bytes are neither pinned nor hash-verified, the destinations are obfuscated to defeat static inspection, the DNS-TXT channel is designed to bypass HTTPS egress filtering, and the on-disk filenames impersonate legitimate diagnostic/cache artifacts. ## Source: ghsa-malware (f7a9336e6ce709efb3da35d383cf42ce65c1e5e998722cb7afda94304416a4d6) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (3e20a9180ff2928b0498496b59c96983db044063b8db7c5e258b6518d5daf00a) On require() of this package, index.js loads _bridge.js which downloads a platform-specific binary from hardcoded Cloudflare Workers hosts (oob-worker.cf103-070.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev), with a DNS-TXT fallback channel over sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru that reassembles a base64-encoded payload from TXT records. The fetched bytes are written under /tmp or %TEMP% with a disguised filename (`.cache_<hex>` or `dotnet_diag_<hex>.exe`), chmodded 0755, and spawned detached via `/bin/sh -c` or `cmd.exe`. The C2 host strings and the `child_process` module name are split across array joins (`["oob-worker.cf103-070.wo","rk","ers",".de","v"].join("")`, `require("child_"+"process")`) to evade static matching. Cover-story identifiers (`analytics_state`, `DISABLE_TELEMETRY`) frame the drop as telemetry. A second, structurally identical dropper ships in lib/telemetry.js (~81 KB) dressed as an analytics SDK: dynamic `require("child_"+"process")`, base64 buffer reassembly, `chmodSync(..., 0o755)`, and `cp.spawn("/bin/sh", ["-c", filePath+" &"],...)`. ## Source: ghsa-malware (176764d97e59476107ea84a11437ba6719446a8f96682c7c6f46284e15f284a1) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (5f786ddb8f05c51044f41661db16ceb96657060ba36d0ead043d430cf4e30a11) Requiring the package loads _vendor.js, which reconstructs remote hosts from array-join fragments (resolving to Cloudflare Workers hosts such as oob-worker.cf*.workers.dev and a *.dl.wel1.ru fallback discovered via DNS-TXT), downloads a platform-specific binary over HTTPS with no hash or signature verification, writes it to /tmp or %TEMP% under a disguised name (.cache_<hex> on Unix, dotnet_diag_<hex>.exe on Windows), chmods it 0755, and spawns it detached via /bin/sh -c or cmd /c start. A TTL stamp is used to avoid re-fetching on subsequent loads. The advertised purpose (a BNPL button UI set) has no legitimate need for downloading and executing an external binary, and the destination hosts are obfuscated to defeat static string scanning. ## Source: ghsa-malware (96364d87dda8ba23b8c1880ed8f6ea480ed5841987390a2bbb12daf8f341a0d1) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (c8c756707c26d481934a28ab399aa9cb9db769f3785006b83a97f519ca90f241) On require(), index.js loads./_platform.js, which assembles OS-specific download URLs from fragmented string pieces pointing at Cloudflare Workers subdomains (oob-worker.cf*-*.workers.dev), fetches an opaque platform-specific binary via https.get, writes it to /var/tmp or %TEMP% under disguised names (.cache_<hex>, dotnet_diag_<hex>.exe), chmods 0755, and spawns it detached via /bin/sh -c '<path> &' on Unix or cmd.exe /c start /b on Windows. A DNS TXT-record fallback (c.<domain> gives chunk count, N.<domain> gives base64 chunks reassembled from hosts like sdk.dl.wel1.ru) provides a covert retrieval channel when HTTPS is blocked. No hash or signature verification is performed; destination hosts are not associated with the package's publisher; hostnames are assembled at runtime specifically to defeat static analysis. Merely importing the package causes a remote binary to be executed on the installer's host. ## Source: ghsa-malware (f33ce5c5b7fe94e058599e2978bb7bb71d68d00d06b3a6e9ab32d431c186d266) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (cfda80d3053a8c106f2665b5c1a9a9235532a4acca7abd2a436b5c69fe7673d6) On require() of the package's main entry, _runtime.js fetches an opaque native binary from anonymous Cloudflare workers.dev subdomains (oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf103-070.workers.dev) with a DNS-TXT chunked fallback resolving hosts under dl.wel1.ru (sdk./ext./pkg./net.), writes it to /var/tmp/.cache_<hex> or %TEMP%/dotnet_diag_<hex>.exe, chmods 0755, and spawns it detached via /bin/sh -c... & or cmd /c start. Hostnames are assembled at runtime from split-string arrays and child_process is loaded via a runtime require() inside _activate(), consistent with static-scanner evasion. Filenames masquerade as dotnet_diag /.cache and a TTL marker (analytics_state) rate-limits re-execution. Installing or requiring this package yields full-host code execution on the installer under attacker-controlled bytes. ## Source: ghsa-malware (20ea76efd9c7012010991937c1135b107f66754480f47907e869438deeee3bed) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (44d48270624de1daefb72838205deed5f5ad8e91d15d34e8b953a15367d02945) On require of the package, _runtime.js selects an OS/arch-specific payload (linux_x64, linux_arm64, darwin, win32), downloads a binary from string-split-obfuscated *.workers.dev mirrors (oob-worker.cf103-070.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf99-9b3.workers.dev) with a DNS TXT-record fallback under sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru that base64-decodes assembled chunks, writes the bytes to /tmp/.cache_<hex> or %TEMP%\dotnet_diag_<hex>.exe, chmods 0755, and spawns the file detached via /bin/sh -c or cmd.exe /c start. Host strings are assembled via array.join() to evade static analysis, and cover-story naming ('.analytics_state', 'dotnet_diag_', 'telemetry' comments) is layered over the dropper. The declared purpose of the package (a BNPL payment popup) does not require importing or executing a fetched native binary. ## Source: ghsa-malware (cf143f6664d3a792cef531065788e7a5792d2f9e0c63a80ad0c97b6804ffba40) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (5bdd69d6a0625e30b3c7764f12685db79bacb5c01e092772a38bbd7019addf54) Requiring dolyame-boxy-desktop-bnpl-footer causes _platform.js to execute at load time: it reconstructs destination hostnames from split string arrays (oob-worker.cf102-baf.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev), downloads a platform-specific binary, writes it to /var/tmp/.cache_<hex> on Unix or %TEMP%/dotnet_diag_<hex>.exe on Windows (masquerading as a.NET diagnostic file), chmods it 0755, and spawns it detached via /bin/sh -c '<path> &' or cmd.exe /c start /b. If HTTPS delivery fails, dnsChunked() falls back to a DNS-TXT covert channel under *.dl.wel1.ru (sdk./ext./pkg./net.dl.wel1.ru), resolving c.<domain> for a chunk count and reassembling base64 TXT records into the executable. Destinations and dangerous APIs are obfuscated via Array.join('') and dynamic property lookups (require('child_'+'process'), fs['chmod'+'Sync']). A second copy of the same dropper is bundled in lib/telemetry.js behind an 'Analytics SDK' cover story. No hash or signature verification is performed on the fetched binary. ## Source: ghsa-malware (ed53f94a9d9ca52e9bddfc8c9890a6a6e474f6eae42ec55c4557ba1876ea4aa5) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database | |||
| Malicious | – | MaliciousGCVE Database --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (5f65bcb53883eb5b3dcd6fe4d8b8ee61e24dad3323aa4ee4431a62b770e17f7a) On require(), _bridge.js downloads a platform-specific binary from hardcoded Cloudflare workers.dev endpoints (oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev) with a DNS TXT chunked-transfer fallback via *.dl.wel1.ru, writes it to /tmp or %TEMP% under disguised names (.cache_<hex> on Unix, dotnet_diag_<hex>.exe on Windows), chmods it 0755, and spawns it detached via /bin/sh or cmd. Host names and resolver domains are assembled from split string fragments (e.g. ['oob-worker.cf100-416.worke','rs.dev'].join('')) to defeat static analysis. A flag file named /tmp/.analytics_state is used as a run stamp, but the package ships no analytics functionality — the name is cover. Execution is guarded only by opt-out env vars, so a default install-and-require chain runs the attacker-controlled binary with the invoking user's privileges. ## Source: ghsa-malware (124a13dcdb80c3bd90e3029669fb50c0ee496ede277e0a8ac1be8f8efe1a3f7e) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. | GCVE Database |
Page 1 of 5 · 1 duplicate CVE record merged