<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 12 Nov 2026 12:46:39 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-115887</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-115887</link>
      <description>&lt;p&gt;GraphQL Scalars is a library of custom GraphQL scalars for creating precise type-safe GraphQL schemas. From 1.24.1 until 2.0.1, GraphQLPhoneNumber in src/scalars/PhoneNumber.ts uses ambiguous nested digit quantifiers that backtrack exponentially when a PhoneNumber value contains a run of digits followed by a character that makes the match fail. GraphQL evaluates parseLiteral during document validation and parseValue during variable coercion before resolver authentication or authorization, so a small unauthenticated request can block the Node.js event loop and stall the server process. serialize is also affected when unvalidated stored values are returned through the scalar. This issue is fixed in version 2.0.1.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;GraphQL Scalars is a library of custom GraphQL scalars for creating precise type-safe GraphQL schemas. From 1.24.1 until 2.0.1, GraphQLPhoneNumber in src/scalars/PhoneNumber.ts uses ambiguous nested digit quantifiers that backtrack exponentially when a PhoneNumber value contains a run of digits followed by a character that makes the match fail. GraphQL evaluates parseLiteral during document validation and parseValue during variable coercion before resolver authentication or authorization, so a small unauthenticated request can block the Node.js event loop and stall the server process. serialize is also affected when unvalidated stored values are returned through the scalar. This issue is fixed in version 2.0.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-115887</guid>
    </item>
    <item>
      <title>GHSA-x8rm-f576-gq67 — graphql-scalars PhoneNumber scalar is vulnerable to regular expression denial of service</title>
      <link>https://db.gcve.eu/vuln/ghsa-x8rm-f576-gq67</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: graphql-scalars&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The regular expression behind `GraphQLPhoneNumber` since 1.24.1 backtracks exponentially. A string made of a run of digits followed by one character that makes the match fail (for example `&amp;#34;1&amp;#34;.repeat(30) + &amp;#34;x&amp;#34;`) blocks the JavaScript thread for seconds, and every additional digit doubles the time.&lt;/p&gt;
&lt;p&gt;graphql-js calls `parseLiteral` while *validating* a document and `parseValue` while coercing variables, so the regex runs for every request that merely contains such a value in a `PhoneNumber` position, before execution and before any authentication or authorization step of the server. One small unauthenticated request is enough to stall a server process.&lt;/p&gt;
&lt;p&gt;## Affected versions&lt;/p&gt;
&lt;p&gt;- `graphql-scalars` &amp;gt;= 1.24.1, &amp;lt;= 2.0.0 (2.0.0 is the current `latest`; the default branch still has the same pattern).
- Not affected: 1.24.0 and the earlier versions I checked (1.22.4, 1.23.0), which use the linear `/^\+[1-9]\d{6,14}$/`.
- Introduced by #2719 (c7f58da16, &amp;#34;PhoneNumber scalar is not fully compatible with E.164 format so updated regex to support phone number with extension&amp;#34;), released as 1.24.1 on 2025-01-29.&lt;/p&gt;
&lt;p&gt;The payload was ran against 1.22.4, 1.23.0, 1.24.0, 1.24.1, 1.24.2, 1.25.0, 1.26.0 and 2.0.0: the first three reject it instantly, the other five show the exponential growth.&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;`src/scalars/PhoneNumber.ts`:&lt;/p&gt;
&lt;p&gt;```js
const PHONE_NUMBER_REGEX = /^\+?\d{1,3}(\-|\x20)?\(?\d+\)?((\-|\x20)?\d+)+$/;
```&lt;/p&gt;
&lt;p&gt;In `\d+\)?((\-|\x20)?\d+)+$` the separator is optional, so a run…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: graphql-scalars&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The regular expression behind `GraphQLPhoneNumber` since 1.24.1 backtracks exponentially. A string made of a run of digits followed by one character that makes the match fail (for example `&amp;#34;1&amp;#34;.repeat(30) + &amp;#34;x&amp;#34;`) blocks the JavaScript thread for seconds, and every additional digit doubles the time.&lt;/p&gt;
&lt;p&gt;graphql-js calls `parseLiteral` while *validating* a document and `parseValue` while coercing variables, so the regex runs for every request that merely contains such a value in a `PhoneNumber` position, before execution and before any authentication or authorization step of the server. One small unauthenticated request is enough to stall a server process.&lt;/p&gt;
&lt;p&gt;## Affected versions&lt;/p&gt;
&lt;p&gt;- `graphql-scalars` &amp;gt;= 1.24.1, &amp;lt;= 2.0.0 (2.0.0 is the current `latest`; the default branch still has the same pattern).
- Not affected: 1.24.0 and the earlier versions I checked (1.22.4, 1.23.0), which use the linear `/^\+[1-9]\d{6,14}$/`.
- Introduced by #2719 (c7f58da16, &amp;#34;PhoneNumber scalar is not fully compatible with E.164 format so updated regex to support phone number with extension&amp;#34;), released as 1.24.1 on 2025-01-29.&lt;/p&gt;
&lt;p&gt;The payload was ran against 1.22.4, 1.23.0, 1.24.0, 1.24.1, 1.24.2, 1.25.0, 1.26.0 and 2.0.0: the first three reject it instantly, the other five show the exponential growth.&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;`src/scalars/PhoneNumber.ts`:&lt;/p&gt;
&lt;p&gt;```js
const PHONE_NUMBER_REGEX = /^\+?\d{1,3}(\-|\x20)?\(?\d+\)?((\-|\x20)?\d+)+$/;
```&lt;/p&gt;
&lt;p&gt;In `\d+\)?((\-|\x20)?\d+)+$` the separator is optional, so a run…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-x8rm-f576-gq67</guid>
    </item>
  </channel>
</rss>
