Summary
The current pins in flutterwave-node-v3@1.3.2 package.json are:
"axios": "1.15.0",
"joi": "17.8.3"
Both pinned to a single exact version rather than a semver range, which means every project that installs this SDK inherits the vulnerabilities of those specific versions with no way to opt into a patched release without an npm overrides hack.
CVEs consumers currently inherit
axios 1.15.0 → three high-severity advisories
- GHSA-4hjh-wcwx-xvwj —
shouldBypassProxy doesn't recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypass
- GHSA-4hjh-wcwx-xvwj — ReDoS via Cookie Name Injection
- Allocation of Resources Without Limits or Throttling in Axios
Fixed in axios ≥ 1.12.2 (and later patches).
joi 17.8.3 → one moderate
- joi has an uncaught RangeError on deeply nested input through recursive
link() schemas — DoS vector for anyone using joi.link() on user input.
Fixed in joi ≥ 17.13.3.
Impact on consumers
We (SnappyHour) are a production consumer of flutterwave-node-v3 for our Kenya M-Pesa payment flow. We currently work around these by overriding transitive versions in our top-level package.json:
"overrides": {
"@sendgrid/client": "8.1.6",
"axios": "^1.12.2"
}
This works but has drawbacks:
- Every downstream consumer has to know to do this
- Overrides can silently break if the SDK ever starts relying on a specific axios API removed in a later version
- Newer consumers not aware of the CVEs run vulnerable in production
Suggested fix
Loosen the pins to a semver range that permits patched versions:
"axios": "^1.15.0",
"joi": "^17.8.3"
Or, if there's a reason for the exact pin (I couldn't find one in the repo), bump the exact versions to the latest patched releases (axios@1.13.x LTS, joi@17.15.x).
Either change is non-breaking for existing consumers (semver-compatible upgrade) and unblocks CVE resolution for everyone.
Verification
mkdir /tmp/fw-audit && cd /tmp/fw-audit
npm init -y
npm install flutterwave-node-v3@1.3.2
npm audit
Should show the four CVEs above.
Happy to open a PR with the pin loosening if that would help. Thanks for maintaining the SDK 🙏
—
Filed 2026-07-07 on behalf of a production consumer.
Summary
The current pins in
flutterwave-node-v3@1.3.2package.jsonare:Both pinned to a single exact version rather than a semver range, which means every project that installs this SDK inherits the vulnerabilities of those specific versions with no way to opt into a patched release without an npm
overrideshack.CVEs consumers currently inherit
axios 1.15.0 → three high-severity advisories
shouldBypassProxydoesn't recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypassFixed in axios ≥ 1.12.2 (and later patches).
joi 17.8.3 → one moderate
link()schemas — DoS vector for anyone usingjoi.link()on user input.Fixed in joi ≥ 17.13.3.
Impact on consumers
We (SnappyHour) are a production consumer of
flutterwave-node-v3for our Kenya M-Pesa payment flow. We currently work around these by overriding transitive versions in our top-levelpackage.json:This works but has drawbacks:
Suggested fix
Loosen the pins to a semver range that permits patched versions:
Or, if there's a reason for the exact pin (I couldn't find one in the repo), bump the exact versions to the latest patched releases (
axios@1.13.xLTS,joi@17.15.x).Either change is non-breaking for existing consumers (semver-compatible upgrade) and unblocks CVE resolution for everyone.
Verification
Should show the four CVEs above.
Happy to open a PR with the pin loosening if that would help. Thanks for maintaining the SDK 🙏
—
Filed 2026-07-07 on behalf of a production consumer.