Debian Patches

Status for icinga2/2.14.6-1+deb13u1

Patch Description Author Forwarded Bugs Origin Last update
21_config_changes Configuration changes for Debian - change icingaadmin mail address to root@localhost Markus Frosch <lazyfrosch@debian.org> not-needed
postgres-checkcommand.patch Use check_postgres path as provided by check-postgres package. Jens Holzkämper <jens@zbmath.org> not-needed debian
systemd-checkcommand.patch Use check_systemd path as provided by monitoring-plugins-systemd package. Bas Couwenberg <sebastic@debian.org> not-needed debian
0001-Send-signals-as-Icinga-user-in-safe-reload-and-logro.patch Send signals as Icinga user in safe-reload and logrotate
In contrast to the regular `kill` binary, `icinga2 internal signal` drops
permissions before sending the signal. This is important as the PID file can be
written by the Icinga user, dropping the permissions prevents that user from
using this to send signals to processes it is not supposed to signal.

SIGUSR1 wasn't among the list of signals supported by `icinga2 internal
signal`, so it is added there.
Julian Brost <julian.brost@icinga.com> no 2025-08-01
0001-Add-upgrading-docs-for-v2.14.7.patch Add upgrading docs for v2.14.7 Julian Brost <julian.brost@icinga.com> no 2025-10-13
0001-Add-permission-checking-to-script-frames-and-filter-.patch Add permission checking to script frames and filter utilities Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-09-22
0001-Check-for-permission-in-get_object.patch Check for permission in get_object() Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-09-22
0001-Declare-functions-as-unsafe-that-aren-t-useful-in-fi.patch Declare functions as unsafe that aren't useful in filter expressions
+ get_objects(): Has no use because in sandboxed contexts the result
can't be filtered or iterated over.
+ get_template(): Currently this is not dangerous because the returned
dictionary object does not hold any interesting
information. However, someone could add more details
in the future and forget to add a permission check.
+ get_templates(): Combines the reasons for get_objects() and
get_template()
+ get_env(): There is no point of ever using this in a filter expression.
Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-09-03
0001-Filter-global-variables-when-Sandboxed.patch Filter global variables when Sandboxed Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-09-22
0001-Add-test-cases-for-checking-permissions-in-filter-ex.patch Add test-cases for checking permissions in filter exprs Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-09-03
0001-Remove-TicketSalt-in-VariableQueryHandler-as-early-a.patch Remove TicketSalt in VariableQueryHandler as early as possible
This is to avoid another kind of exploit found by where TicketSalt
can be accessed when the object filter is evaluated by checking
its name via the local `variable` reference and then `throw`ing
it to print it in the error message.
Johannes Schmidt <johannes.schmidt@icinga.com> no 2025-10-01
0001-DerefExpression-Add-missing-nullptr-check.patch DerefExpression: Add missing nullptr check
Due to this missing check, evaluating a DSL expression can result in a null
dereference, crashing the Icinga 2 process. Given that API users can also
provide DSL expression as filters, this can be triggered over the network as
well.

This issue was assigned CVE-2025-61908.
Julian Brost <julian.brost@icinga.com> no 2025-10-08
0001-Don-t-use-boost-asio-ip-tcp-resolver-query.patch Don't use boost::asio::ip::tcp::resolver::query
It was removed in Boost 1.87.

(cherry picked from commit 7bd35d8c6b7658170835de0fa623e3a4099569fb)
Alexander Aleksandrovič Klimov no 2025-01-07
0001-Don-t-use-boost-asio-io_context-strand-method-remove.patch Don't use boost::asio::io_context::strand method removed in Boost 1.87

(cherry picked from commit 011c67964ee2ab4c9a21f8aab322663e3bf5c317)
Alexander Aleksandrovič Klimov no 2025-01-07
0001-In-a-coroutine-re-throw-everything-ex.-std-exception.patch In a coroutine, re-throw everything ex. std::exception (and inheritors)

not just boost::coroutines::detail::forced_unwind.

This is needed because as of Boost 1.87, boost::asio::spawn() uses Fiber, not Coroutine v1.
https://github.com/boostorg/asio/commit/df973a85ed69f021

This is safe because every actual exception shall inherit from std::exception. Except forced_unwind and its Fiber equivalent, so that `catch(const std::exception&)` doesn't catch them and only them.

(cherry picked from commit 0662f2b7193693ba1129690ac004af7f866470bb)
"Alexander A. Klimov" <alexander.klimov@icinga.com> no 2025-03-07
0001-Don-t-use-removed-boost-asio-spawn-overload-if-Boost.patch Don't use removed boost::asio::spawn() overload if Boost >= v1.87
(cherry picked from commit fb2b2e2d5b32a02309aa1c50ae5e9fb873922988)
"Alexander A. Klimov" <alexander.klimov@icinga.com> no 2025-03-07
0001-Prefer-icinga-String-GetData-over-icinga-String-CStr.patch Prefer icinga::String::GetData() over icinga::String::CStr()
Creating the string_view from the std::string (as returned by GetData()) uses
the stored length instead of having to detect it by finding '\0'.

(cherry picked from commit ccfc72267f5c4bddad6779bb30c93a504f286500)
Julian Brost <julian.brost@icinga.com> no 2025-04-11
0001-Avoid-multiple-if-in-a-single-function-call-expressi.patch Avoid multiple #if in a single function call expression
Simply giving two entire call expressions for either Boost version greatly
improves readability in my opinion.

(cherry picked from commit d1d399f8b329dbe3f6f1f172ece165332fb9512f)
Julian Brost <julian.brost@icinga.com> no 2025-04-11
0001-SpawnCoroutine-move-callback-into-wrapper-lambda.patch SpawnCoroutine: move callback into wrapper lambda
f isn't used otherwise in the function, so if possible, it can just be moved into the lambda, avoiding a copy.

(cherry picked from commit d3fae440d4b229581c39bc972ea2f3edf0d23efe)
Julian Brost <julian.brost@icinga.com> no 2025-04-15
0001-Check-if-client-is-a-valid-endpoint-before-updating-.patch Check if client is a valid endpoint before updating CA-certificate
(cherry picked from commit 6c2e0db3819f859910a4ae265461cb51b1d2039c)
Johannes Schmidt <johannes.schmidt@icinga.com> no 2026-04-15
0001-ConfigWriter-EmitScope-Escape-import.patch ConfigWriter::EmitScope: Escape import
Escape all user-supplied template imports when creating an Icinga 2 DSL
configuration object. Without the escape, a `"` within the template name
would allow escaping the created object and create other Icinga 2 DSL
objects, exceeding potential user privileges.

The same bug was present in ConfigWriter::EmitComment, but as this
method is dead code, it could just be removed.

(cherry picked from commit faf0450962ad678397991cfdf041810feafa71e7)
Alvar Penning <alvar.penning@icinga.com> no 2026-04-10
0001-Add-filter-expression-permission.patch Add filter-expression permission
This allows preventing ApiUsers from evaluating their own DSL expressions for
improved security.

(cherry picked from commit 324d5bb815f95deb7b87b22e42c6f152cdfd352e)
Julian Brost <julian.brost@icinga.com> no 2026-05-22
0001-JsonDecode-add-depth-limit.patch JsonDecode: add depth limit
Data structures parsed from JSON may be accessed recursively, so deeply nested
structures may wreak havoc by overflowing the stack. Thus, enforce a general
nesting depth limit of 24 by default (which should be more than enough for
reasonable use), with the ability to pass a different limit to JsonDecode() if
needed.

(cherry picked from commit 4964d2444ca5c4fae9036054554e1c6e0025fb89)
Julian Brost <julian.brost@icinga.com> no 2026-05-27
0001-JsonDecode-include-path-in-JSON-depth-error.patch JsonDecode: include path in JSON depth error
If parsing JSON is rejected due to the depth limit introduced in the last
commit, also include the path (like root["object"]["children"]...) that exceeds
the allowed nesting depth.

(cherry picked from commit 14d6ee9cdf9ebe1286a72ba516d957fd163259e9)
Julian Brost <julian.brost@icinga.com> no 2026-05-29
0001-Don-t-shut-down-JSON-RPC-connection-if-a-message-fai.patch Don't shut down JSON-RPC connection if a message fails to parse
With the limit from the previous commit, if a JSON-RPC now message fails to
parse due to being nested to deep, it would have torn down the whole
connection. It is still possible to trigger that scenario from DSL config (for
example by returning nested structures from a lambda that is used in a check
with command_endpoint). In order to fail more gracefully, only discard the
single message and don't kill the whole connection.

(cherry picked from commit e7d656cf37683f36fb36b30806e55fc2dc53caf4)
Julian Brost <julian.brost@icinga.com> no 2026-05-27
0001-Prevent-HTTP-requests-from-creating-deeply-nested-da.patch Prevent HTTP requests from creating deeply nested data structures
Add validation checks to code paths reachable from the HTTP API (except full
config file deployments via /v1/config) that prevent creating deeply nested
data structures that could later cause a stack overflow.

(cherry picked from commit 4b7ef02bd25e131a6dfcb0d2c3d45e816ecef365)
Julian Brost <julian.brost@icinga.com> no 2026-06-12
0001-tests-add-SpawnSynchronizedCoroutine-to-base-json.cp.patch tests: add SpawnSynchronizedCoroutine() to base-json.cpp
Backports the helper from 2.16's remote-httpmessage.cpp.

(cherry picked from commit ed202ed74571cc6d258ed08249a3f4814c760783)
Julian Brost <julian.brost@icinga.com> no 2026-06-09
0001-Add-tests-for-JsonDecode-depth-limit-in-combination-.patch Add tests for JsonDecode depth limit in combination with coroutine stacks

(cherry picked from commit 0481a66b01f0a8c02d70bbe0ff40417addfeff05)
Julian Brost <julian.brost@icinga.com> no 2026-06-09
0001-Also-execute-JsonDecode-stack-size-test-in-pthread-i.patch Also execute JsonDecode stack size test in pthread if available
Depending on the Boost version, the existing test case based on Boost.Asio
coroutines might use a stack allocated without a guard page and might not
reliably detect an overflow. This commit additionally runs the same test
function within a pthread thread started with the same stack size as used by
our coroutines.

(cherry picked from commit a155da01b247c7439e90979fb1105ddcdf5ef94e)
Julian Brost <julian.brost@icinga.com> no 2026-06-18
0001-Restore-single-argument-Json.decode-in-the-DSL.patch Restore single-argument Json.decode() in the DSL
The recursion depth limit added to JsonDecode() in 2.16.2 gave the C++
function a second parameter with a default value. Function pointers do not
carry default arguments, so the DSL function binding deduced an arity of 2
via boost::function_types::function_arity and required two arguments. As a
result `Json.decode("...")` failed with "Too few arguments for function",
an undocumented breaking change in a patch release.

Wrap JsonDecode() in a single-argument shim (mirroring the existing
JsonEncodeShim) so the registered function keeps its one-parameter contract
while still applying the default depth limit internally.

refs #10913

(cherry picked from commit d29ac491f231d6831e98cc614902faed78718598)
Dominik Bay <dominik@bay.sh> no 2026-06-29

All known versions for source package 'icinga2'

Links