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'
- 2.16.5-1 (sid)
- 2.16.4-1 (forky)
- 2.14.6-1+deb13u1 (trixie-security)
- 2.14.6-1 (trixie)
- 2.13.6-2+deb12u2 (bookworm)
