CTIPilot
AI-generated · no human review · verify critical claims against the linked source. how it works →

GitLab CI

product · product:gitlab-ci single-source

Coverage
2
first 2026-09-17 → last 2026-10-29
Latest activity
2026-10-29
SafeDep and JFrog: the testmetest npm worm now runs on import, so --ignore-scripts does not stop it; 42 repos…
Peak priority
notable
2 notable
Targets
technology
sectors: technology, public-sector
Sources cited
5
5 hosts

Action items (1)

Do-now tasks recorded on the entries about GitLab CI, newest first. Check the date before acting on an older one.

  • Compare every lockfile and CI cache against the package list in SafeDep's post; on each host that installed or imported a listed package, disconnect it, remove persistence first and only then rotate the GitHub, npm, cloud and SSH credentials it could read, because the worm wipes the home directory when the stolen GitHub token is revoked.
    2026-10-29SafeDep and JFrog: the testmetest npm worm now runs…

Defender insights

What each entry about GitLab CI tells a defender to do, newest first.

2026-10-29NOTABLESafeDep and JFrog: the testmetest npm worm now runs on import, so --ignore-scripts does not stop it; 42 repos armed

Exposure · detection

2026-09-17NOTABLEA bug-bounty hunter builds their own npm infostealer to manufacture the compromises they then report for a payout

Triage

Story timeline

  1. 2026-10-29testmetest: an npm worm in the Miasma and Shai-Hulud family now starts when an application imports the package, so install with --ignore-scripts no longer protects, and JFrog finds 42 third-party GitHub repositories already armed with its publisher
    active-threatsSafeDep and JFrog: the testmetest npm worm now runs on import, so --ignore-scripts does not stop it; 42 repos armed
  2. 2026-09-17PhantomRaven: CrowdStrike attributes an LLM-generated npm infostealer, hidden from registry scanners via a remote-URL dependency trick, to a self-described bug-bounty hunter
    active-threatsA bug-bounty hunter builds their own npm infostealer to manufacture the compromises they then report for a payout

Hunting pivots

Releases covered
GitLab CI ×2
ATT&CK techniques (20 across 11 tactics)

20 techniques observed across 2 entries about this entity, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v20.0 · compare on the matrix · Navigator layer (JSON)

  • Resource DevelopmentDevelop Capabilities: Malware
  • Initial AccessSupply Chain Compromise: Compromise Software Dependencies and Development Tools · Supply Chain Compromise: Compromise Software Supply Chain
  • ExecutionCommand and Scripting Interpreter: JavaScript · Software Deployment Tools
  • StealthObfuscated Files or Information · Obfuscated Files or Information: Embedded Payloads · Masquerading: Match Legitimate Resource Name or Location · Virtualization/Sandbox Evasion: System Checks
  • Credential AccessUnsecured Credentials: Credentials In Files · Unsecured Credentials: Container API
  • DiscoverySystem Network Configuration Discovery: Internet Connection Discovery · System Information Discovery · File and Directory Discovery · Virtualization/Sandbox Evasion: System Checks
  • Lateral MovementSoftware Deployment Tools
  • CollectionData from Local System
  • Command and ControlApplication Layer Protocol: Web Protocols · Multi-Stage Channels
  • ExfiltrationExfiltration Over C2 Channel · Exfiltration Over Web Service: Exfiltration to Code Repository
  • ImpactData Destruction

Resource Development TA0042

T1587.001Develop Capabilities: Malware×1

Adversaries may develop malware and malware components that can be used during targeting. Building malicious software can include the development of payloads, droppers, post-compromise tools, backdoors (including backdoored images), packers, C2 protocols, and the creation of infected removable media. Adversaries may develop malware to support their operations, creating a means for maintaining control of remote machines, evading defenses, and executing post-compromise behaviors.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Initial Access TA0001

T1195.001Supply Chain Compromise: Compromise Software Dependencies and Development Tools×1

Adversaries may manipulate software dependencies and development tools prior to receipt by a final consumer for the purpose of data or system compromise. Applications often depend on external software to function properly. Popular open source projects that are used as dependencies in many applications, such as pip and NPM packages, may be targeted as a means to add malicious code to users of the dependency. This may also include abandoned packages, which in some cases could be re-registered by threat actors after being removed by adversaries. Adversaries may also employ "typosquatting" or name-confusion by choosing names similar to existing popular libraries or packages in order to deceive a user.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1195.002Supply Chain Compromise: Compromise Software Supply Chain×1

Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise of software can take place in a number of ways, including manipulation of the application source code, manipulation of the update/distribution mechanism for that software, or replacing compiled releases with a modified version.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

Execution TA0002

T1059.007Command and Scripting Interpreter: JavaScript×1

Adversaries may abuse various implementations of JavaScript for execution. JavaScript (JS) is a platform-independent scripting language (compiled just-in-time at runtime) commonly associated with scripts in webpages, though JS can be executed in runtime environments outside the browser.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

T1072Software Deployment Tools×1

Adversaries may gain access to and use centralized software suites installed within an enterprise to execute commands and move laterally through the network. Configuration management and software deployment applications may be used in an enterprise network or cloud environment for routine administration purposes. These systems may also be integrated into CI/CD pipelines. Examples of such solutions include: SCCM, HBSS, Altiris, AWS Systems Manager, Microsoft Intune, Azure Arc, and GCP Deployment Manager.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Stealth TA0005

T1027Obfuscated Files or Information×1

Adversaries may attempt to make an executable or file difficult to discover or analyze by encrypting, encoding, or otherwise obfuscating its contents on the system or in transit. This is common behavior that can be used across different platforms and the network to evade defenses.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

T1027.009Obfuscated Files or Information: Embedded Payloads×1

Adversaries may embed payloads within other files to conceal malicious content from defenses. Otherwise seemingly benign files (such as scripts and executables) may be abused to carry and obfuscate malicious payloads and content. In some cases, embedded payloads may also enable adversaries to Subvert Trust Controls by not impacting execution controls such as digital signatures and notarization tickets.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1036.005Masquerading: Match Legitimate Resource Name or Location×1

Adversaries may match or approximate the name or location of legitimate files, Registry keys, or other resources when naming/placing them. This is done for the sake of evading defenses and observation.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1497.001Virtualization/Sandbox Evasion: System Checks×1

Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

Credential Access TA0006

T1552.001Unsecured Credentials: Credentials In Files×2

Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials. These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1552.007Unsecured Credentials: Container API×1

Adversaries may gather credentials via APIs within a containers environment. APIs in these environments, such as the Docker API and Kubernetes APIs, allow a user to remotely manage their container resources and cluster components.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Discovery TA0007

T1016.001System Network Configuration Discovery: Internet Connection Discovery×1

Adversaries may check for Internet connectivity on compromised systems. This may be performed during automated discovery and can be accomplished in numerous ways such as using Ping, <code>tracert</code>, and GET requests to websites, or performing initial speed testing to confirm bandwidth.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1082System Information Discovery×1

An adversary may attempt to get detailed information about the operating system and hardware, including version, patches, hotfixes, service packs, and architecture. Adversaries may use this information to shape follow-on behaviors, including whether or not the adversary fully infects the target and/or attempts specific actions. This behavior is distinct from Local Storage Discovery which is an adversary's discovery of local drive, disks and/or volumes.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1083File and Directory Discovery×1

Adversaries may enumerate files and directories or may search in specific locations of a host or network share for certain information within a file system. Adversaries may use the information from File and Directory Discovery during automated discovery to shape follow-on behaviors, including whether or not the adversary fully infects the target and/or attempts specific actions.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1497.001Virtualization/Sandbox Evasion: System Checks×1

Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

Lateral Movement TA0008

T1072Software Deployment Tools×1

Adversaries may gain access to and use centralized software suites installed within an enterprise to execute commands and move laterally through the network. Configuration management and software deployment applications may be used in an enterprise network or cloud environment for routine administration purposes. These systems may also be integrated into CI/CD pipelines. Examples of such solutions include: SCCM, HBSS, Altiris, AWS Systems Manager, Microsoft Intune, Azure Arc, and GCP Deployment Manager.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Collection TA0009

T1005Data from Local System×1

Adversaries may search local system sources, such as file systems, configuration files, local databases, virtual machine files, or process memory, to find files of interest and sensitive data prior to Exfiltration.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Command and Control TA0011

T1071.001Application Layer Protocol: Web Protocols×1

Adversaries may communicate using application layer protocols associated with web traffic to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1104Multi-Stage Channels×1

Adversaries may create multiple stages for command and control that are employed under different conditions or for certain functions. Use of multiple stages may obfuscate the command and control channel to make detection more difficult.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

Exfiltration TA0010

T1041Exfiltration Over C2 Channel×1

Adversaries may steal data by exfiltrating it over an existing command and control channel. Stolen data is encoded into the normal communications channel using the same protocol as command and control communications.

Evidence: 2026-09-17/phantomraven-npm-llm-generated-infostealer · ATT&CK page ↗

T1567.001Exfiltration Over Web Service: Exfiltration to Code Repository×1

Adversaries may exfiltrate data to a code repository rather than over their primary command and control channel. Code repositories are often accessible via an API (ex: https://api.github.com). Access to these APIs are often over HTTPS, which gives the adversary an additional level of protection.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

Impact TA0040

T1485Data Destruction×1

Adversaries may destroy data and files on specific systems or in large numbers on a network to interrupt availability to systems, services, and network resources. Data destruction is likely to render stored data irrecoverable by forensic techniques through overwriting files or data on local and remote drives. Common operating system file deletion commands such as <code>del</code> and <code>rm</code> often only remove pointers to files without wiping the contents of the files themselves, making the files recoverable by proper forensic methodology. This behavior is distinct from Disk Content Wipe and Disk Structure Wipe because individual files are destroyed rather than sections of a storage disk or the disk's logical structure.

Evidence: 2026-10-29/testmetest-npm-worm-runs-on-import-ignore-scripts · ATT&CK page ↗

Entries about GitLab CI (2)

2026-10-29 · view entry permalink →

NOTABLENATOB2

testmetest: an npm worm in the Miasma and Shai-Hulud family now starts when an application imports the package, so install with --ignore-scripts no longer protects, and JFrog finds 42 third-party GitHub repositories already armed with its publisher

SafeDep counts 19 npm packages from the same operator between 2026-10-19 and 2026-10-27, eight of them published through four npm accounts, that carry a worm sharing code with the June Miasma worm and adding the token-revocation wiper of Mini Shai-Hulud; SafeDep has not confirmed the lineage, and JFrog says its evidence does not establish that the original Miasma operators are responsible (SafeDep, 2026-10-27; JFrog Security Research, 2026-10-26). The install trigger has changed twice: first a command expansion in a binding.gyp file, with no install script; then a postinstall script that loads a native addon which decodes and starts the worm; and, since SafeDep's update of 27 October, an addon that runs when an application imports the package, so a hardening step that disables install scripts does not stop it (SafeDep, 2026-10-27).

The payload exits on CIS locales and in known analysis sandboxes. It steals SSH keys, registry and Git credentials, .env files, browser logins, AI-tool, cloud, Vault and Kubernetes secrets and GitHub Actions secrets read from runner memory (SafeDep, 2026-10-27). It exfiltrates by committing encrypted data, with the victim's encrypted GitHub token, to a new public repository in the victim's own account, injects a GitLab CI job that requests npm and PyPI OIDC tokens, adds its loader to the victim's npm packages and publishes new patch versions, republishes to PyPI and RubyGems, commits a fake CodeQL workflow and AI-agent configuration files that infect the host again, and copies itself over SSH to the hosts in known_hosts (SafeDep, 2026-10-27). A persistence service checks the stolen GitHub token every 45 seconds for 48 hours and on an authentication failure deletes the home directory (SafeDep, 2026-10-27). JFrog found 42 armed third-party GitHub repositories of 11 legitimate owners with hooks for AI coding assistants and IDEs, and says the payload blobs were large enough to evade GitHub's search and API paths (JFrog Security Research, 2026-10-26).

Any application that imports the package starts the worm.

The malicious versions steal credentials, spread to other packages and repositories, and install a wiper that deletes the home directory when the victim revokes the stolen GitHub token.

SafeDep (living post, updated 2026-10-27) 2026-10-27

The payload blobs were large enough to evade the GitHub search and API paths normally used to find this kind of compromise.

JFrog Security Research 2026-10-26

SafeDep has not confirmed its exact lineage.

SafeDep (living post, updated 2026-10-27) 2026-10-27

Builds on: The compromised actions-cool GitHub Actions were re-enabled in September with malicious tags…

threat29 Oct 04:47Zmulti-sourceOpen finding →

2026-09-17 · view entry permalink →

NOTABLENATOB2

PhantomRaven: CrowdStrike attributes an LLM-generated npm infostealer, hidden from registry scanners via a remote-URL dependency trick, to a self-described bug-bounty hunter

CrowdStrike Counter Adversary Operations attributes PhantomRaven, an npm information stealer, to a single financially motivated actor who publicly describes themself as a bug-bounty hunter and has been active since November 2022 (CrowdStrike, 2026-09-16). CrowdStrike assesses with high confidence that the malware's code is LLM-generated, based on verbose per-symbol comments explaining the obvious, placeholder code, and statistical token-analysis patterns consistent with an LLM token stream (CrowdStrike, 2026-09-16). The actor distributes the stealer through typosquatted npm packages whose visible code is trivial and non-malicious, but whose package.json specifies a dependency via a raw HTTP URL rather than a normal registry reference, a Remote Dynamic Dependency that npm fetches silently at install time from attacker-controlled infrastructure, so the real payload never appears in the registry's own web interface or most automated scanners. The fetched payload registers as a preinstall script that auto-executes on npm install; CrowdStrike credits npm 12's June 2026 default block on unapproved preinstall scripts with narrowing this vector going forward (CrowdStrike, 2026-09-16).

Once running, the stealer harvests host/OS information, local and external IP addresses, Node.js version, the current working directory and process ID, Git- and npm-configured usernames and emails, and CI/CD environment variables covering GitHub Actions, GitLab CI, Jenkins and CircleCI, tokens, project IDs and build URLs consistent with harvesting CI/CD account credentials rather than end-user secrets. Exfiltration goes out over both HTTP GET and POST to the same command-and-control domains, and the code also carries an incomplete fallback WebSocket exfiltration path CrowdStrike reads as unfinished, redundant infrastructure rather than a live channel. CrowdStrike correlated npm usernames, an X account, a HackerOne-referencing alias, a GitHub account and a rejected 2025 PyPI submission back to the same operator, who publicly claims via their own X profile to have collected bounties from at least nine organizations across tech, retail and hospitality via Bugcrowd, Intigriti, YesWeHack, HackenProof and HackerOne, using compromises their own malware enabled as leverage for disclosure submissions (CrowdStrike, 2026-09-16). The malware family itself and its Remote Dynamic Dependency technique were first documented by Koi Security, whose original wave affected 126+ packages with over 86,000 downloads (Endor Labs, 2026-03-10, citing Koi Security); Endor Labs' own follow-up research identified three further waves totalling 88 more packages between November 2025 and February 2026 (Endor Labs, 2026-03-10). CrowdStrike's new contribution is the actor-identification and monetization-motive finding.

Triage: a legitimate build tool's own telemetry or update-check call is the benign lookalike; the discriminators are the absence of any corresponding, expected package purpose for the network call and a destination domain pattern that is freshly registered or "artifact"/"registry"-themed rather than a known vendor telemetry endpoint.

PhantomRaven is a simple JS information stealer that exfiltrates system information and continuous integration/continuous deployment (CI/CD)-related environment variables, likely in an attempt to collect account credentials. The code was almost certainly LLM-generated, and the author's technical sophistication is likely low.

In npm version 12 or later, if a developer attempts to install a dependency package with a preinstall script, they receive a warning message indicating that the script has been blocked and will not automatically execute.

CrowdStrike Counter Adversary Operations 2026-09-16
threat17 Sep 04:48Zsingle-sourceOpen finding →

Co-occurring entities

Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Where this entity is cited

  • Threats2

Source distribution

  • bleepingcomputer.com1 (20%)
  • crowdstrike.com1 (20%)
  • endorlabs.com1 (20%)
  • research.jfrog.com1 (20%)
  • safedep.io1 (20%)