Atril Document Viewer is the default document reader of the MATE desktop environment for Linux. A single-click remote code execution vulnerability in versions prior to 1.26.3 and 1.28.4 allows an attacker to achieve arbitrary code execution as the user by tricking them into clicking a link inside a malicious PDF document. The PDF can be packaged as a polyglot file that is simultaneously a valid PDF and a valid ELF shared library, making the attack a single-file, single-click, configuration-independent RCE on stock atril installations. The root cause is shell/ev-application.c:ev_spawn, which builds a command line from attacker-controlled PDF link-destination fields without applying g_shell_quote. The cmdline is then handed to g_app_info_create_from_commandline, which shell-parses it back into argv — splitting any embedded --gtk-module=PATH into a separate argv element. GTK then dlopen()s the path during init, running any __attribute__((constructor)) it finds. Versions 1.26.3 and 1.28.4 contain a patch for the issue. This is the same defect class as CVE-2023-51698 (CBT --checkpoint-action injection in comics-document.c, fixed in 1.6.2) but in a different code path (shell/ev-application.c) that the original patch did not touch.
{
"binaries": [
{
"binary_name": "evince",
"binary_version": "3.18.2-1ubuntu4.6"
},
{
"binary_name": "evince-common",
"binary_version": "3.18.2-1ubuntu4.6"
},
{
"binary_name": "evince-gtk",
"binary_version": "3.18.2-1ubuntu4.6"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "3.18.2-1ubuntu4.6"
},
{
"binary_name": "libevdocument3-4",
"binary_version": "3.18.2-1ubuntu4.6"
},
{
"binary_name": "libevview3-3",
"binary_version": "3.18.2-1ubuntu4.6"
}
]
}{
"binaries": [
{
"binary_name": "browser-plugin-evince",
"binary_version": "3.28.4-0ubuntu1.2"
},
{
"binary_name": "evince",
"binary_version": "3.28.4-0ubuntu1.2"
},
{
"binary_name": "evince-common",
"binary_version": "3.28.4-0ubuntu1.2"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "3.28.4-0ubuntu1.2"
},
{
"binary_name": "libevdocument3-4",
"binary_version": "3.28.4-0ubuntu1.2"
},
{
"binary_name": "libevview3-3",
"binary_version": "3.28.4-0ubuntu1.2"
}
]
}{
"binaries": [
{
"binary_name": "evince",
"binary_version": "3.36.10-0ubuntu1"
},
{
"binary_name": "evince-common",
"binary_version": "3.36.10-0ubuntu1"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "3.36.10-0ubuntu1"
},
{
"binary_name": "libevdocument3-4",
"binary_version": "3.36.10-0ubuntu1"
},
{
"binary_name": "libevview3-3",
"binary_version": "3.36.10-0ubuntu1"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "atril-common",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "gir1.2-atril",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "libatrildocument3",
"binary_version": "1.24.0-1ubuntu0.2"
},
{
"binary_name": "libatrilview3",
"binary_version": "1.24.0-1ubuntu0.2"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.26.0-1ubuntu1.2"
},
{
"binary_name": "atril-common",
"binary_version": "1.26.0-1ubuntu1.2"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.26.0-1ubuntu1.2"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.26.0-1ubuntu1.2"
},
{
"binary_name": "libatrildocument3",
"binary_version": "1.26.0-1ubuntu1.2"
},
{
"binary_name": "libatrilview3",
"binary_version": "1.26.0-1ubuntu1.2"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "evince",
"binary_version": "42.3-0ubuntu3.2"
},
{
"binary_name": "evince-common",
"binary_version": "42.3-0ubuntu3.2"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "42.3-0ubuntu3.2"
},
{
"binary_name": "libevdocument3-4",
"binary_version": "42.3-0ubuntu3.2"
},
{
"binary_name": "libevview3-3",
"binary_version": "42.3-0ubuntu3.2"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.26.2-3build2"
},
{
"binary_name": "atril-common",
"binary_version": "1.26.2-3build2"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.26.2-3build2"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.26.2-3build2"
},
{
"binary_name": "libatrildocument3t64",
"binary_version": "1.26.2-3build2"
},
{
"binary_name": "libatrilview3t64",
"binary_version": "1.26.2-3build2"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "evince",
"binary_version": "46.3.1-0ubuntu1.1"
},
{
"binary_name": "evince-common",
"binary_version": "46.3.1-0ubuntu1.1"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "46.3.1-0ubuntu1.1"
},
{
"binary_name": "libevdocument3-4t64",
"binary_version": "46.3.1-0ubuntu1.1"
},
{
"binary_name": "libevview3-3t64",
"binary_version": "46.3.1-0ubuntu1.1"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.26.2-5"
},
{
"binary_name": "atril-common",
"binary_version": "1.26.2-5"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.26.2-5"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.26.2-5"
},
{
"binary_name": "libatrildocument3t64",
"binary_version": "1.26.2-5"
},
{
"binary_name": "libatrilview3t64",
"binary_version": "1.26.2-5"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "evince",
"binary_version": "48.1-3ubuntu2.1"
},
{
"binary_name": "evince-common",
"binary_version": "48.1-3ubuntu2.1"
},
{
"binary_name": "gir1.2-evince-3.0",
"binary_version": "48.1-3ubuntu2.1"
},
{
"binary_name": "libevdocument3-4t64",
"binary_version": "48.1-3ubuntu2.1"
},
{
"binary_name": "libevview3-3t64",
"binary_version": "48.1-3ubuntu2.1"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "gir1.2-papers-4.0",
"binary_version": "48.0-1ubuntu1.25.10.4"
},
{
"binary_name": "libppsdocument-4.0-5",
"binary_version": "48.0-1ubuntu1.25.10.4"
},
{
"binary_name": "libppsview-4.0-4",
"binary_version": "48.0-1ubuntu1.25.10.4"
},
{
"binary_name": "papers",
"binary_version": "48.0-1ubuntu1.25.10.4"
},
{
"binary_name": "papers-common",
"binary_version": "48.0-1ubuntu1.25.10.4"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.28.2-1"
},
{
"binary_name": "atril-common",
"binary_version": "1.28.2-1"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.28.2-1"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.28.2-1"
},
{
"binary_name": "libatrildocument3t64",
"binary_version": "1.28.2-1"
},
{
"binary_name": "libatrilview3t64",
"binary_version": "1.28.2-1"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "evince",
"binary_version": "49~alpha-2ubuntu2.1"
},
{
"binary_name": "evince-common",
"binary_version": "49~alpha-2ubuntu2.1"
},
{
"binary_name": "gir1.2-evince-4.0",
"binary_version": "49~alpha-2ubuntu2.1"
},
{
"binary_name": "libevdocument-4.0-6",
"binary_version": "49~alpha-2ubuntu2.1"
},
{
"binary_name": "libevview-4.0-5",
"binary_version": "49~alpha-2ubuntu2.1"
}
]
}{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "gir1.2-papers-4.0",
"binary_version": "50.1-0ubuntu1.1"
},
{
"binary_name": "libppsdocument-4.0-6",
"binary_version": "50.1-0ubuntu1.1"
},
{
"binary_name": "libppsview-4.0-5",
"binary_version": "50.1-0ubuntu1.1"
},
{
"binary_name": "papers",
"binary_version": "50.1-0ubuntu1.1"
},
{
"binary_name": "papers-common",
"binary_version": "50.1-0ubuntu1.1"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.12.2-1ubuntu0.3+esm1"
},
{
"binary_name": "atril-common",
"binary_version": "1.12.2-1ubuntu0.3+esm1"
},
{
"binary_name": "gir1.2-atril",
"binary_version": "1.12.2-1ubuntu0.3+esm1"
},
{
"binary_name": "libatrildocument3",
"binary_version": "1.12.2-1ubuntu0.3+esm1"
},
{
"binary_name": "libatrilview3",
"binary_version": "1.12.2-1ubuntu0.3+esm1"
}
]
}{
"binaries": [
{
"binary_name": "atril",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "atril-common",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "gir1.2-atril",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "gir1.2-atrildocument-1.5.0",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "gir1.2-atrilview-1.5.0",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "libatrildocument3",
"binary_version": "1.20.1-2ubuntu2+esm2"
},
{
"binary_name": "libatrilview3",
"binary_version": "1.20.1-2ubuntu2+esm2"
}
]
}