Researchers from ReversingLabs discovered a couple of dozen NPM packages that included malicious code designed to steal data from apps and web forms on websites that included the modules.
The malicious NPM modules were delivered as part of a widespread campaign, tracked as IconBurst, that according to the experts has been active at least since 2021. One of the tainted packages had been downloaded more than 17,000 times.
“Upon closer inspection, we discovered evidence of a coordinated supply chain attack, with a large number of NPM packages containing jQuery scripts designed to steal form data from deployed applications that include them. While the full extent of this attack isn’t yet known, the malicious packages we discovered are likely used by hundreds, if not thousands of downstream mobile and desktop applications as well as websites.” reads the analysis published by ReversingLabs.
Threat actors relied on typo-squatting, they used packages via public repositories with names that are similar to — or common misspellings of — legitimate packages. Some of the malicious packages impersonated popular NPM modules like umbrellajs and packages published by ionic.io.
Below is the list of malicious packages with the corresponding download count:
|Author / Package name||Download count|
Experts pointed out that initially, the threat actors took a conservative approach to harvesting form data, but most recently published malicious packages were designed to acquire as much data as possible.
“Analysis of the modules reveals evidence of coordination, with malicious modules traceable to a small number of NPM publishers, and consistent patterns in supporting infrastructure such as exfiltration domains.” conclude the researchers. “This attack marks a significant escalation in software supply chain attacks. Malicious code bundled within the NPM modules is running within an unknown number of mobile and desktop applications and web pages, harvesting untold amounts of user data.”
Follow me on Twitter: @securityaffairs and Facebook
|[adrotate banner=”9″]||[adrotate banner=”12″]|
(SecurityAffairs – hacking, NPM packages)