<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-01T07:37:36.589159+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-43fc-jf86-j433</id>
    <title>GHSA-43fc-jf86-j433 — Axios is Vulnerable to Denial of Service via __proto__ Key in mergeConfig</title>
    <updated>2026-10-01T07:37:36.591295+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: axios</p>
<p># Denial of Service via **proto** Key in mergeConfig</p>
<p>### Summary</p>
<p>The `mergeConfig` function in axios crashes with a TypeError when processing configuration objects containing `__proto__` as an own property. An attacker can trigger this by providing a malicious configuration object created via `JSON.parse()`, causing complete denial of service.</p>
<p>### Details</p>
<p>The vulnerability exists in `lib/core/mergeConfig.js` at lines 98-101:</p>
<p>```javascript
utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
  const merge = mergeMap[prop] || mergeDeepProperties;
  const configValue = merge(config1[prop], config2[prop], prop);
  (utils.isUndefined(configValue) &amp;&amp; merge !== mergeDirectKeys) || (config[prop] = configValue);
});
```</p>
<p>When `prop` is `'__proto__'`:</p>
<p>1. `JSON.parse('{"__proto__": {...}}')` creates an object with `__proto__` as an own enumerable property
2. `Object.keys()` includes `'__proto__'` in the iteration
3. `mergeMap['__proto__']` performs prototype chain lookup, returning `Object.prototype` (truthy object)
4. The expression `mergeMap[prop] || mergeDeepProperties` evaluates to `Object.prototype`
5. `Object.prototype(...)` throws `TypeError: merge is not a function`</p>
<p>The `mergeConfig` function is called by:</p>
<p>- `Axios._request()` at `lib/core/Axios.js:75`
- `Axios.getUri()` at `lib/core/Axios.js:201`
- All HTTP method shortcuts (`get`, `post`, etc.) at `lib/core/Axios.js:211,224`</p>
<p>### PoC</p>
<p>```javascript
import axios from "axios";</p>
<p>cons…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-43fc-jf86-j433"/>
  </entry>
</feed>
