linux-cve-announce.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-89607: ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet
Date: Fri, 11 Sep 2026 21:44:56 +0200	[thread overview]
Message-ID: <2026091134-CVE-2026-89607-3077@gregkh> (raw)

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet

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 > 64, decrypt_passphrase_encrypted_session_key()
sets decrypted_key_size = encrypted_key_size and performs two
out-of-bounds writes:

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->key, decrypted_key, decrypted_key_size) writes
   into crypt_stat->key[64], corrupting root_iv, keysig_list, and
   mutexes in ecryptfs_crypt_stat.

Only AES-192 (cipher code 0x08) enables this because it sets
crypt_stat->key_size = 24 independently of encrypted_key_size,
allowing crypto_skcipher_setkey() to succeed while encrypted_key_size
exceeds ECRYPTFS_MAX_KEY_BYTES.

The PKI decryption path (parse_tag_65_packet) already validates
decrypted_key_size <= ECRYPTFS_MAX_KEY_BYTES; the passphrase path
omits this check.

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.

[tyhicks: Adjust the code comment to refer to macros representing the
 buffer sizes rather than mentioning the buffer size values since they
 may change in the future]

The Linux kernel CVE team has assigned CVE-2026-89607 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 2.6.19 with commit 237fead619984cc48818fe12ee0ceada3f55b012 and fixed in 6.12.109 with commit ccd13eff0e7356d2aa28b127b577e4e5ad4563f5
	Issue introduced in 2.6.19 with commit 237fead619984cc48818fe12ee0ceada3f55b012 and fixed in 6.18.50 with commit 14cb36a500a5a3afbc955dbf69dabc565f1a3b26
	Issue introduced in 2.6.19 with commit 237fead619984cc48818fe12ee0ceada3f55b012 and fixed in 7.2.4 with commit a419c9ebfc9a40ee56aaad6dc68bfd67d400817b
	Issue introduced in 2.6.19 with commit 237fead619984cc48818fe12ee0ceada3f55b012 and fixed in 7.3-rc1 with commit 5babe9c177c364521e3e682b949c5a8c47f4a441

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-89607
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	fs/ecryptfs/keystore.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/ccd13eff0e7356d2aa28b127b577e4e5ad4563f5
	https://git.kernel.org/stable/c/14cb36a500a5a3afbc955dbf69dabc565f1a3b26
	https://git.kernel.org/stable/c/a419c9ebfc9a40ee56aaad6dc68bfd67d400817b
	https://git.kernel.org/stable/c/5babe9c177c364521e3e682b949c5a8c47f4a441

                 reply	other threads:[~2026-09-11 19:58 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026091134-CVE-2026-89607-3077@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=cve@kernel.org \
    --cc=gregkh@kernel.org \
    --cc=linux-cve-announce@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).