<?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://cve.radiocsirt.org</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, 08 Oct 2026 06:40:12 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-309121</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-309121</link>
      <description>EUVD-2026-309121</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-309121</guid>
    </item>
    <item>
      <title>fkie_cve-2026-42267</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-42267</link>
      <description>&lt;p&gt;Kimai is an open-source time tracking application. From version 2.27.0 to before version 2.54.0, any ROLE_USER can create a tag with a formula string as its name (e.g. =SUM(54+51)) via POST /api/tags and assign it to a timesheet. When an admin exports timesheets to XLSX, ArrayFormatter.formatValue() joins tag names with implode() and returns the result unchanged. OpenSpout promotes any =-prefixed string to a FormulaCell, writing &amp;lt;f&amp;gt;SUM(54+51)&amp;lt;/f&amp;gt; into the XLSX archive. Excel evaluates the formula when the file is opened. This issue has been patched in version 2.54.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Kimai is an open-source time tracking application. From version 2.27.0 to before version 2.54.0, any ROLE_USER can create a tag with a formula string as its name (e.g. =SUM(54+51)) via POST /api/tags and assign it to a timesheet. When an admin exports timesheets to XLSX, ArrayFormatter.formatValue() joins tag names with implode() and returns the result unchanged. OpenSpout promotes any =-prefixed string to a FormulaCell, writing &amp;lt;f&amp;gt;SUM(54+51)&amp;lt;/f&amp;gt; into the XLSX archive. Excel evaluates the formula when the file is opened. This issue has been patched in version 2.54.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-42267</guid>
    </item>
    <item>
      <title>GHSA-3xc2-h5r3-wv3r — Kimai vulnerable to formula Injection via tag names in XLSX export</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-3xc2-h5r3-wv3r</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: kimai/kimai&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Any `ROLE_USER` can create a tag with a formula string as its name (e.g. `=SUM(54+51)`) via `POST /api/tags` and assign it to a timesheet. When an admin exports timesheets to XLSX, `ArrayFormatter.formatValue()` joins tag names with `implode()` and returns the result unchanged. OpenSpout promotes any `=`-prefixed string to a `FormulaCell`, writing `&amp;lt;f&amp;gt;SUM(54+51)&amp;lt;/f&amp;gt;` into the XLSX archive. Excel evaluates the formula when the file is opened.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### 1. `ArrayFormatter` does not sanitize before returning&lt;/p&gt;
&lt;p&gt;`sanitizeDDE()` exists on `StringHelper` and is called by `TextFormatter`, but `ArrayFormatter` never calls it.
```php
// src/Export/Package/CellFormatter/ArrayFormatter.php:24
return implode(&amp;#39;, &amp;#39;, $value);  // no sanitizeDDE() call
```&lt;/p&gt;
&lt;p&gt;### 2. Tag name validation does not block formula trigger characters&lt;/p&gt;
&lt;p&gt;The API blocks commas in tag names but permits `=`, `+`, `-`, and `@` - all valid formula prefixes in Excel and LibreOffice Calc.&lt;/p&gt;
&lt;p&gt;### 3. OpenSpout silently promotes strings to formula cells&lt;/p&gt;
&lt;p&gt;`Cell::fromValue(&amp;#34;=SUM(54+51)&amp;#34;)` returns a `FormulaCell` with no warning.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. It logs in as normal user, creates tag `=SUM(54+51)`, assigns it to a timesheet.
2. Admin has to export timesheets to Excel version via `/en/export/` endpoint.&lt;/p&gt;
&lt;p&gt;&amp;lt;img width=&amp;#34;1339&amp;#34; height=&amp;#34;700&amp;#34; alt=&amp;#34;image&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/884c7943-5e3b-4647-8bcc-e264d6719d66&amp;#34; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;img width=&amp;#34;1304&amp;#34; height=&amp;#34;128&amp;#34; alt=&amp;#34;formula_injection_tags&amp;#34; src=&amp;#34;https://github.com/use…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: kimai/kimai&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;Any `ROLE_USER` can create a tag with a formula string as its name (e.g. `=SUM(54+51)`) via `POST /api/tags` and assign it to a timesheet. When an admin exports timesheets to XLSX, `ArrayFormatter.formatValue()` joins tag names with `implode()` and returns the result unchanged. OpenSpout promotes any `=`-prefixed string to a `FormulaCell`, writing `&amp;lt;f&amp;gt;SUM(54+51)&amp;lt;/f&amp;gt;` into the XLSX archive. Excel evaluates the formula when the file is opened.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### 1. `ArrayFormatter` does not sanitize before returning&lt;/p&gt;
&lt;p&gt;`sanitizeDDE()` exists on `StringHelper` and is called by `TextFormatter`, but `ArrayFormatter` never calls it.
```php
// src/Export/Package/CellFormatter/ArrayFormatter.php:24
return implode(&amp;#39;, &amp;#39;, $value);  // no sanitizeDDE() call
```&lt;/p&gt;
&lt;p&gt;### 2. Tag name validation does not block formula trigger characters&lt;/p&gt;
&lt;p&gt;The API blocks commas in tag names but permits `=`, `+`, `-`, and `@` - all valid formula prefixes in Excel and LibreOffice Calc.&lt;/p&gt;
&lt;p&gt;### 3. OpenSpout silently promotes strings to formula cells&lt;/p&gt;
&lt;p&gt;`Cell::fromValue(&amp;#34;=SUM(54+51)&amp;#34;)` returns a `FormulaCell` with no warning.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;1. It logs in as normal user, creates tag `=SUM(54+51)`, assigns it to a timesheet.
2. Admin has to export timesheets to Excel version via `/en/export/` endpoint.&lt;/p&gt;
&lt;p&gt;&amp;lt;img width=&amp;#34;1339&amp;#34; height=&amp;#34;700&amp;#34; alt=&amp;#34;image&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/884c7943-5e3b-4647-8bcc-e264d6719d66&amp;#34; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;img width=&amp;#34;1304&amp;#34; height=&amp;#34;128&amp;#34; alt=&amp;#34;formula_injection_tags&amp;#34; src=&amp;#34;https://github.com/use…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-3xc2-h5r3-wv3r</guid>
    </item>
  </channel>
</rss>
