Every CVE Search/ Get API key

CVE-2024-29042

Translate Cache Poisoning Vulnerability

5.3 MediumFix available

Translate is a package that allows users to convert text to different languages on Node.js and the browser. Prior to version 3.0.0, an attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users. The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served. Version 3.0.0 fixes this issue.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
None

Exploit likelihood

0.65%Up 0.6 points since Mar 23, 2024
90%50%10%1%

What each source reports

CVE List Score used 5.3

Translate Cache Poisoning Vulnerability

Translate is a package that allows users to convert text to different languages on Node.js and the browser. Prior to version 3.0.0, an attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users. The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served. Version 3.0.0 fixes this issue.

Record
CVE-2024-29042
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-20
Updated
2026-11-02
EUVDEUVD-2024-0870 5.3

Translate is a package that allows users to convert text to different languages on Node.js and the browser. Prior to version 3.0.0, an attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users. The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served. Version 3.0.0 fixes this issue.

Record
EUVD-2024-0870
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Updated
2026-11-03
GitHub AdvisoriesGHSA-882j-4vj5-7vmj 5.3

Cache Poisoning Vulnerability

Summary

An attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users.

Details

The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served.

PoC

Take the following simple server allowing users to supply text and the language to translate to.

import translate from "translate";
import express from 'express';

const app = express();
app.use(express.json());

app.post('/translate', async (req, res) => {
  const { text, language } = req.body;
  const result = await translate(text, language);
  return res.json(result);
});

const port = 3000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

We can send the following request to poison the cache:

{"text":"I hate you", "language":{"to":"nl","id":"undefined:en:nl:google:I love you"}}

Now, any user that attempts to translate "I love you" to Dutch, will get "I hate you" in Dutch as the response.

Impact

An attacker can control the results other users may get

Record
GHSA-882j-4vj5-7vmj
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-20
Updated
2026-11-02
NVD 5.3

Translate is a package that allows users to convert text to different languages on Node.js and the browser. Prior to version 3.0.0, an attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users. The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served. Version 3.0.0 fixes this issue.

Record
CVE-2024-29042
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-20
Updated
2026-11-02
OSV 5.3

Translate Cache Poisoning Vulnerability

Translate is a package that allows users to convert text to different languages on Node.js and the browser. Prior to version 3.0.0, an attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users. The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served. Version 3.0.0 fixes this issue.

Record
CVE-2024-29042
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-20
Updated
2026-11-02
OSVGHSA-882j-4vj5-7vmj 5.3

Cache Poisoning Vulnerability

Summary

An attacker controlling the second variable of the translate function is able to perform a cache poisoning attack. They can change the outcome of translation requests made by subsequent users.

Details

The opt.id parameter allows the overwriting of the cache key. If an attacker sets the id variable to the cache key that would be generated by another user, they can choose the response that user gets served.

PoC

Take the following simple server allowing users to supply text and the language to translate to.

import translate from "translate";
import express from 'express';

const app = express();
app.use(express.json());

app.post('/translate', async (req, res) => {
  const { text, language } = req.body;
  const result = await translate(text, language);
  return res.json(result);
});

const port = 3000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

We can send the following request to poison the cache:

{"text":"I hate you", "language":{"to":"nl","id":"undefined:en:nl:google:I love you"}}

Now, any user that attempts to translate "I love you" to Dutch, will get "I hate you" in Dutch as the response.

Impact

An attacker can control the results other users may get

Record
GHSA-882j-4vj5-7vmj
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weakness
CWE-20
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
translate
npm
before 3.0.0
3.0.0

History

History
RecordedChangedSources
aliases, publishedEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2024-29042 is a medium vulnerability (CVSS 5.3) in Francisco Translate, published March 22, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.65%, the 51st percentile. Fixed in translate 3.0.0.

References

MoveEnter Open