
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
ip-wiki — IP Address Utility Library for Wikipedia and Node.js🐙 GitHub - 📦 npm - 📘 API Documentation
ip-wiki is a JavaScript library written in ES6 that provides classes for manipulating IP and CIDR addresses. As the name suggests, it was developed for use on Wikipedia (primarily front-end), but it also works as a Node.js module in back-end environments.
npm install ip-wiki
If you only need type definitions:
npm install -D ip-wiki
In CommonJS:
const { IP, IPUtil } = require('ip-wiki');
In ES modules:
import { IP, IPUtil } from 'ip-wiki';
Then:

Load and import ja:MediaWiki:Gadget-ip-wiki.js. In this case, this package is for Intellisense. (You may also want to install types-mediawiki as a dev dependency.)
/**
* @returns {JQueryPromise<import('ip-wiki')>}
*/
function getIpWiki() {
const gadget = 'ext.gadget.ip-wiki';
return mw.loader.using(gadget).then((req) => req(gadget));
}
getIpWiki().then((ipWiki) => {
const { IP, IPUtil } = ipWiki;
// ...
});
If a module named ip-wiki is not defined in the local Gadgets-definition, you may need to cross-wiki-load it:
/**
* @returns {JQueryPromise<import('ip-wiki')>}
*/
function getIpWikiX() {
const gadget = 'ext.gadget.ip-wiki';
return mw.loader.getScript('https://ja.wikipedia.org/w/load.php?modules=' + gadget).then(() => {
return mw.loader.using(gadget).then((req) => req(gadget));
});
}
Then:

This library provides two main classes: the IP class and the static IPUtil class:
IP class when you need to repeatedly manipulate the same IP address. This is more efficient than using IPUtil, as it avoids re-parsing the IP string.IPUtil class for one-off manipulations (i.e. when you don’t need to instantiate a class).IPSuppose you want to retrieve the indexes of elements in the ipArr array that match the IP address 192.168.1.1:
const ip = IP.newFromText('192.168.1.1');
if (!ip) {
return;
}
const ipArr = [
'192.168.1.1/32',
'::1',
'192.168.001.001'
];
const indexes = ipArr.reduce(/** @param {number[]} acc */ (acc, ipStr, i) => {
if (ip.equals(ipStr)) { // Not IPUtil.equals('192.168.1.1', ipStr)
acc.push(i);
}
return acc;
}, []);
console.log(indexes); // [ 0, 2 ]
IPUtilSuppose you want to filter ipArr to include only IPv6 addresses:
const ipArr = [
'192.168.1.1/32',
'::1',
'192.168.001.001'
];
const filtered = ipArr.filter((ip) => IPUtil.isIPv6(ip, true));
console.log(filtered); // [ '::1' ]
Suppose you want to extract an array of IPv6 CIDRs in their sanitized form:
const ipArr = [
'foo',
'192.168.1.0',
'fd12:3456:789a:1::1',
'fd12:3456:789a:0:0:0:0:0/48',
'fd12:3456:789a:1::/64'
];
const ipv6Cidrs = ipArr.reduce(/** @param {string[]} acc */ (acc, ipStr) => {
const sanitized = IPUtil.sanitize(ipStr, {
capitalize: false,
conditionPredicate: (version, isCidr) => version === 6 && isCidr
});
if (sanitized) {
acc.push(sanitized);
}
return acc;
}, []);
console.log(ipv6Cidrs); // [ 'fd12:3456:789a:0:0:0:0:0/48', 'fd12:3456:789a:1:0:0:0:0/64' ]
For more methods and detailed usage, see the API documentation!
FAQs
An IP address utility library for Wikipedia and NodeJS.
The npm package ip-wiki receives a total of 70 weekly downloads. As such, ip-wiki popularity was classified as not popular.
We found that ip-wiki demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.