<?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://vulnerability.circl.lu</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>Tue, 29 Sep 2026 21:27:07 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89607 — ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89607</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet&lt;/p&gt;
&lt;p&gt;parse_tag_3_packet() set encrypted_key_size from the Tag 3 packet body
without bounding it against ECRYPTFS_MAX_KEY_BYTES (64). When
encrypted_key_size &amp;gt; 64, decrypt_passphrase_encrypted_session_key()
sets decrypted_key_size = encrypted_key_size and performs two
out-of-bounds writes:&lt;/p&gt;
&lt;p&gt;1. crypto_skcipher_decrypt() writes encrypted_key_size bytes into
   decrypted_key[64] via scatterlist, overflowing into the parent
   ecryptfs_auth_tok struct.
2. memcpy(crypt_stat-&amp;gt;key, decrypted_key, decrypted_key_size) writes
   into crypt_stat-&amp;gt;key[64], corrupting root_iv, keysig_list, and
   mutexes in ecryptfs_crypt_stat.&lt;/p&gt;
&lt;p&gt;Only AES-192 (cipher code 0x08) enables this because it sets
crypt_stat-&amp;gt;key_size = 24 independently of encrypted_key_size,
allowing crypto_skcipher_setkey() to succeed while encrypted_key_size
exceeds ECRYPTFS_MAX_KEY_BYTES.&lt;/p&gt;
&lt;p&gt;The PKI decryption path (parse_tag_65_packet) already validates
decrypted_key_size &amp;lt;= ECRYPTFS_MAX_KEY_BYTES; the passphrase path
omits this check.&lt;/p&gt;
&lt;p&gt;Bound encrypted_key_size against ECRYPTFS_MAX_KEY_BYTES (64) rather
than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES (512). The 64-byte limit also
protects the 512-byte encrypted_key[] buffer, so the former 512-byte
check is removed as redundant.&lt;/p&gt;
&lt;p&gt;[tyhicks: Adjust the code comment to refer to macros representing the
 buffer sizes rather than mentioning the buffer size values…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet&lt;/p&gt;
&lt;p&gt;parse_tag_3_packet() set encrypted_key_size from the Tag 3 packet body
without bounding it against ECRYPTFS_MAX_KEY_BYTES (64). When
encrypted_key_size &amp;gt; 64, decrypt_passphrase_encrypted_session_key()
sets decrypted_key_size = encrypted_key_size and performs two
out-of-bounds writes:&lt;/p&gt;
&lt;p&gt;1. crypto_skcipher_decrypt() writes encrypted_key_size bytes into
   decrypted_key[64] via scatterlist, overflowing into the parent
   ecryptfs_auth_tok struct.
2. memcpy(crypt_stat-&amp;gt;key, decrypted_key, decrypted_key_size) writes
   into crypt_stat-&amp;gt;key[64], corrupting root_iv, keysig_list, and
   mutexes in ecryptfs_crypt_stat.&lt;/p&gt;
&lt;p&gt;Only AES-192 (cipher code 0x08) enables this because it sets
crypt_stat-&amp;gt;key_size = 24 independently of encrypted_key_size,
allowing crypto_skcipher_setkey() to succeed while encrypted_key_size
exceeds ECRYPTFS_MAX_KEY_BYTES.&lt;/p&gt;
&lt;p&gt;The PKI decryption path (parse_tag_65_packet) already validates
decrypted_key_size &amp;lt;= ECRYPTFS_MAX_KEY_BYTES; the passphrase path
omits this check.&lt;/p&gt;
&lt;p&gt;Bound encrypted_key_size against ECRYPTFS_MAX_KEY_BYTES (64) rather
than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES (512). The 64-byte limit also
protects the 512-byte encrypted_key[] buffer, so the former 512-byte
check is removed as redundant.&lt;/p&gt;
&lt;p&gt;[tyhicks: Adjust the code comment to refer to macros representing the
 buffer sizes rather than mentioning the buffer size values…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89607</guid>
    </item>
  </channel>
</rss>
