summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-irc/znc
diff options
context:
space:
mode:
authorAnkur Tyagi <ankur.tyagi85@gmail.com>2026-01-09 22:28:39 +1300
committerAnuj Mittal <anuj.mittal@oss.qualcomm.com>2026-01-12 07:52:00 +0530
commite90c455347d5500ceced87cfcf68a84cb8b75fe1 (patch)
tree4db736b3c3878ed9617f9333fa6140892e570bca /meta-networking/recipes-irc/znc
parentbfd8dda3ba5e3e0a820e489ed177de6d60ddfa50 (diff)
downloadmeta-openembedded-e90c455347d5500ceced87cfcf68a84cb8b75fe1.tar.gz
znc: patch CVE-2024-39844
Details: https://nvd.nist.gov/vuln/detail/CVE-2024-39844 Backport commit[1] from https://github.com/znc/znc/releases/tag/znc-1.9.1 [1] https://github.com/znc/znc/commit/8cbf8d628174ddf23da680f3f117dc54da0eb06e Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com> Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
Diffstat (limited to 'meta-networking/recipes-irc/znc')
-rw-r--r--meta-networking/recipes-irc/znc/znc/CVE-2024-39844.patch62
-rw-r--r--meta-networking/recipes-irc/znc/znc_1.8.2.bb1
2 files changed, 63 insertions, 0 deletions
diff --git a/meta-networking/recipes-irc/znc/znc/CVE-2024-39844.patch b/meta-networking/recipes-irc/znc/znc/CVE-2024-39844.patch
new file mode 100644
index 0000000000..cf9486791c
--- /dev/null
+++ b/meta-networking/recipes-irc/znc/znc/CVE-2024-39844.patch
@@ -0,0 +1,62 @@
1From d3867e667ec813a448a0845087a8d87bad58402d Mon Sep 17 00:00:00 2001
2From: Alexey Sokolov <alexey+znc@asokolov.org>
3Date: Mon, 1 Jul 2024 09:59:16 +0100
4Subject: [PATCH] Fix RCE vulnerability in modtcl
5
6Remote attacker could execute arbitrary code embedded into the kick
7reason while kicking someone on a channel.
8
9To mitigate this for existing installations, simply unload the modtcl
10module for every user, if it's loaded.
11Note that only users with admin rights can load modtcl at all.
12
13While at it, also escape the channel name.
14
15Discovered by Johannes Kuhn (DasBrain)
16
17Patch by https://github.com/glguy
18
19CVE-2024-39844
20
21CVE: CVE-2024-39844
22Upstream-Status: Backport [https://github.com/znc/znc/commit/8cbf8d628174ddf23da680f3f117dc54da0eb06e]
23(cherry picked from commit 8cbf8d628174ddf23da680f3f117dc54da0eb06e)
24Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
25---
26 modules/modtcl.cpp | 9 ++++++---
27 1 file changed, 6 insertions(+), 3 deletions(-)
28
29diff --git a/modules/modtcl.cpp b/modules/modtcl.cpp
30index c64bc43f..58e68f51 100644
31--- a/modules/modtcl.cpp
32+++ b/modules/modtcl.cpp
33@@ -248,8 +248,9 @@ class CModTcl : public CModule {
34 // chan specific
35 unsigned int nLength = vChans.size();
36 for (unsigned int n = 0; n < nLength; n++) {
37+ CString sChannel = TclEscape(CString(vChans[n]->GetName()));
38 sCommand = "Binds::ProcessNick {" + sOldNick + "} {" + sHost +
39- "} - {" + vChans[n]->GetName() + "} {" + sNewNickTmp +
40+ "} - {" + sChannel + "} {" + sNewNickTmp +
41 "}";
42 int i = Tcl_Eval(interp, sCommand.c_str());
43 if (i != TCL_OK) {
44@@ -260,14 +261,16 @@ class CModTcl : public CModule {
45
46 void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel,
47 const CString& sMessage) override {
48+ CString sMes = TclEscape(sMessage);
49 CString sOpNick = TclEscape(CString(OpNick.GetNick()));
50 CString sNick = TclEscape(sKickedNick);
51 CString sOpHost =
52 TclEscape(CString(OpNick.GetIdent() + "@" + OpNick.GetHost()));
53+ CString sChannel = TclEscape(Channel.GetName());
54
55 CString sCommand = "Binds::ProcessKick {" + sOpNick + "} {" + sOpHost +
56- "} - {" + Channel.GetName() + "} {" + sNick + "} {" +
57- sMessage + "}";
58+ "} - {" + sChannel + "} {" + sNick + "} {" +
59+ sMes + "}";
60 int i = Tcl_Eval(interp, sCommand.c_str());
61 if (i != TCL_OK) {
62 PutModule(Tcl_GetStringResult(interp));
diff --git a/meta-networking/recipes-irc/znc/znc_1.8.2.bb b/meta-networking/recipes-irc/znc/znc_1.8.2.bb
index 68dd0702f7..9901344601 100644
--- a/meta-networking/recipes-irc/znc/znc_1.8.2.bb
+++ b/meta-networking/recipes-irc/znc/znc_1.8.2.bb
@@ -7,6 +7,7 @@ DEPENDS = "openssl zlib icu"
7 7
8SRC_URI = "git://github.com/znc/znc.git;name=znc;branch=master;protocol=https \ 8SRC_URI = "git://github.com/znc/znc.git;name=znc;branch=master;protocol=https \
9 git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket;branch=master;protocol=https \ 9 git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket;branch=master;protocol=https \
10 file://CVE-2024-39844.patch \
10 " 11 "
11SRCREV_znc = "bf253640d33d03331310778e001fb6f5aba2989e" 12SRCREV_znc = "bf253640d33d03331310778e001fb6f5aba2989e"
12SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4" 13SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"