Hello Debian Security Team, On behalf of the Debian (E)LTS Team I'm offering help with handling the atril security updates that according to dsa-needed.txt is not claimed by anyone yet.
I've prepared updated branches debian/trixie and debian/bookworm/updates in my personal fork of the mate-team packaging repository at: https://salsa.debian.org/ah/atril I'm also attaching debdiffs if you find that more convenient. Please tell me if you'd like me to proceed to upload. Regards, Andreas Henriksson
diff -Nru atril-1.26.0/debian/changelog atril-1.26.0/debian/changelog --- atril-1.26.0/debian/changelog 2024-05-07 17:33:36.000000000 +0200 +++ atril-1.26.0/debian/changelog 2026-05-27 09:51:19.000000000 +0200 @@ -1,3 +1,10 @@ +atril (1.26.0-2+deb12u4) bookworm-security; urgency=medium + + * Non-maintainer upload by the LTS Team. + * CVE-2026-46529: command line argument injection + + -- Andreas Henriksson <[email protected]> Wed, 27 May 2026 09:51:19 +0200 + atril (1.26.0-2+deb12u3) bookworm-security; urgency=medium * CVE-2023-52076 (Closes: #1061522) diff -Nru atril-1.26.0/debian/patches/CVE-2026-46529.patch atril-1.26.0/debian/patches/CVE-2026-46529.patch --- atril-1.26.0/debian/patches/CVE-2026-46529.patch 1970-01-01 01:00:00.000000000 +0100 +++ atril-1.26.0/debian/patches/CVE-2026-46529.patch 2026-05-27 09:50:33.000000000 +0200 @@ -0,0 +1,67 @@ +From b989b7922a454ed81f8bb14786a958828513f576 Mon Sep 17 00:00:00 2001 +From: Victor Kareh <[email protected]> +Date: Thu, 14 May 2026 20:56:31 -0400 +Subject: [PATCH] ev-application: Quote user-supplied strings in ev_spawn + command line + +When spawning a new atril instance for cross-document links, the +destination and search parameters from the document were interpolated +directly into the command line without shell quoting. Values containing +spaces or special characters could be split into separate arguments by +the shell parser, potentially being interpreted as unintended flags by +the child process. + +Apply shell quoting to page label, named destination, and search string +values before appending them to the command line, consistent with how +other spawn sites in the codebase already handle this. +--- + shell/ev-application.c | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +Originally downloaded from: +https://github.com/mate-desktop/atril/commit/b989b7922a454ed81f8bb14786a958828513f576.patch + +diff --git a/shell/ev-application.c b/shell/ev-application.c +index 57f1b9225..37d35eaa7 100644 +--- a/shell/ev-application.c ++++ b/shell/ev-application.c +@@ -221,18 +221,22 @@ ev_spawn (const char *uri, + /* Page label or index */ + if (dest) { + switch (ev_link_dest_get_dest_type (dest)) { +- case EV_LINK_DEST_TYPE_PAGE_LABEL: +- g_string_append_printf (cmd, " --page-label=%s", +- ev_link_dest_get_page_label (dest)); ++ case EV_LINK_DEST_TYPE_PAGE_LABEL: { ++ gchar *quoted = g_shell_quote (ev_link_dest_get_page_label (dest)); ++ g_string_append_printf (cmd, " --page-label=%s", quoted); ++ g_free (quoted); + break; ++ } + case EV_LINK_DEST_TYPE_PAGE: + g_string_append_printf (cmd, " --page-index=%d", + ev_link_dest_get_page (dest) + 1); + break; +- case EV_LINK_DEST_TYPE_NAMED: +- g_string_append_printf (cmd, " --named-dest=%s", +- ev_link_dest_get_named_dest (dest)); ++ case EV_LINK_DEST_TYPE_NAMED: { ++ gchar *quoted = g_shell_quote (ev_link_dest_get_named_dest (dest)); ++ g_string_append_printf (cmd, " --named-dest=%s", quoted); ++ g_free (quoted); + break; ++ } + default: + break; + } +@@ -240,7 +244,9 @@ ev_spawn (const char *uri, + + /* Find string */ + if (search_string) { +- g_string_append_printf (cmd, " --find=%s", search_string); ++ gchar *quoted = g_shell_quote (search_string); ++ g_string_append_printf (cmd, " --find=%s", quoted); ++ g_free (quoted); + } + + /* Mode */ diff -Nru atril-1.26.0/debian/patches/series atril-1.26.0/debian/patches/series --- atril-1.26.0/debian/patches/series 2024-05-07 17:32:27.000000000 +0200 +++ atril-1.26.0/debian/patches/series 2026-05-27 09:50:49.000000000 +0200 @@ -6,3 +6,4 @@ 0005-Use-a-blank-line-at-most.patch 0006-comics-Use-libarchive-to-unpack-documents.patch CVE-2023-52076.patch +CVE-2026-46529.patch
diff -Nru atril-1.26.2/debian/changelog atril-1.26.2/debian/changelog --- atril-1.26.2/debian/changelog 2025-01-06 15:32:43.000000000 +0100 +++ atril-1.26.2/debian/changelog 2026-05-27 09:36:59.000000000 +0200 @@ -1,3 +1,10 @@ +atril (1.26.2-4+deb13u1) trixie-security; urgency=medium + + * Non-maintainer upload by the LTS Team. + * CVE-2026-46529: command line argument injection + + -- Andreas Henriksson <[email protected]> Wed, 27 May 2026 09:36:59 +0200 + atril (1.26.2-4) unstable; urgency=medium * debian/patches: diff -Nru atril-1.26.2/debian/patches/CVE-2026-46529.patch atril-1.26.2/debian/patches/CVE-2026-46529.patch --- atril-1.26.2/debian/patches/CVE-2026-46529.patch 1970-01-01 01:00:00.000000000 +0100 +++ atril-1.26.2/debian/patches/CVE-2026-46529.patch 2026-05-27 09:35:49.000000000 +0200 @@ -0,0 +1,67 @@ +From b989b7922a454ed81f8bb14786a958828513f576 Mon Sep 17 00:00:00 2001 +From: Victor Kareh <[email protected]> +Date: Thu, 14 May 2026 20:56:31 -0400 +Subject: [PATCH] ev-application: Quote user-supplied strings in ev_spawn + command line + +When spawning a new atril instance for cross-document links, the +destination and search parameters from the document were interpolated +directly into the command line without shell quoting. Values containing +spaces or special characters could be split into separate arguments by +the shell parser, potentially being interpreted as unintended flags by +the child process. + +Apply shell quoting to page label, named destination, and search string +values before appending them to the command line, consistent with how +other spawn sites in the codebase already handle this. +--- + shell/ev-application.c | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +Originally downloaded from: +https://github.com/mate-desktop/atril/commit/b989b7922a454ed81f8bb14786a958828513f576.patch + +diff --git a/shell/ev-application.c b/shell/ev-application.c +index 57f1b9225..37d35eaa7 100644 +--- a/shell/ev-application.c ++++ b/shell/ev-application.c +@@ -221,18 +221,22 @@ ev_spawn (const char *uri, + /* Page label or index */ + if (dest) { + switch (ev_link_dest_get_dest_type (dest)) { +- case EV_LINK_DEST_TYPE_PAGE_LABEL: +- g_string_append_printf (cmd, " --page-label=%s", +- ev_link_dest_get_page_label (dest)); ++ case EV_LINK_DEST_TYPE_PAGE_LABEL: { ++ gchar *quoted = g_shell_quote (ev_link_dest_get_page_label (dest)); ++ g_string_append_printf (cmd, " --page-label=%s", quoted); ++ g_free (quoted); + break; ++ } + case EV_LINK_DEST_TYPE_PAGE: + g_string_append_printf (cmd, " --page-index=%d", + ev_link_dest_get_page (dest) + 1); + break; +- case EV_LINK_DEST_TYPE_NAMED: +- g_string_append_printf (cmd, " --named-dest=%s", +- ev_link_dest_get_named_dest (dest)); ++ case EV_LINK_DEST_TYPE_NAMED: { ++ gchar *quoted = g_shell_quote (ev_link_dest_get_named_dest (dest)); ++ g_string_append_printf (cmd, " --named-dest=%s", quoted); ++ g_free (quoted); + break; ++ } + default: + break; + } +@@ -240,7 +244,9 @@ ev_spawn (const char *uri, + + /* Find string */ + if (search_string) { +- g_string_append_printf (cmd, " --find=%s", search_string); ++ gchar *quoted = g_shell_quote (search_string); ++ g_string_append_printf (cmd, " --find=%s", quoted); ++ g_free (quoted); + } + + /* Mode */ diff -Nru atril-1.26.2/debian/patches/series atril-1.26.2/debian/patches/series --- atril-1.26.2/debian/patches/series 2024-12-27 09:15:56.000000000 +0100 +++ atril-1.26.2/debian/patches/series 2026-05-27 09:35:13.000000000 +0200 @@ -1,3 +1,4 @@ 1002-avoid-crash-on-certain-epub-files.patch 0001_fix-incompat-pointer-type.patch 0002_simplify-array-iteration.patch +CVE-2026-46529.patch

