On 2023-10-23 23:23:07 +0200, Salvo "LtWorf" Tomaselli wrote: > Package: release.debian.org > Severity: normal > Tags: bullseye > User: release.debian....@packages.debian.org > Usertags: pu > X-Debbugs-Cc: web...@packages.debian.org, tipos...@tiscali.it > Control: affects -1 + src:weborf > > I have found a denial of service in all versions of weborf. > > It is tracked in #1054417 and solved in 1.0 upstream. > https://github.com/ltworf/weborf/pull/88 > > The issue is fixed in unstable but remains in stable and oldstable. > > [ Reason ] > The bug has been there undetected for years. The fix is minimal. > > [ Impact ] > The denial of service and extremely unlikely but theoretically possible > remote execution issue will remain. > > The issue exists only if the process has CGI enabled (not the default). > > [ Tests ] > > There are no automated tests covering the issue. > > [ Risks ] > > The patch is just 3 lines. > > [ Checklist ] > [*] *all* changes are documented in the d/changelog > [*] I reviewed all changes and I approve them > [*] attach debdiff against the package in (old)stable > [*] the issue is verified as fixed in unstable > > [ Changes ] > > A patch to remove a memory allocation and copy, where I forgot a +1 in the > copy. > > The resulting code just reuses the same buffer instead of copying, which was > not > needed to begin with. > > [ Other info ] > > Tracked in CVE-2023-46586
> diff -Nru weborf-0.17/debian/changelog weborf-0.17/debian/changelog > --- weborf-0.17/debian/changelog 2020-12-31 15:13:19.000000000 +0100 > +++ weborf-0.17/debian/changelog 2023-10-23 18:40:22.000000000 +0200 > @@ -1,3 +1,9 @@ > +weborf (0.17-4) bullseye; urgency=medium This version was already used: https://snapshot.debian.org/package/weborf/0.17-4/ Cheers > + > + * Backport patch from upstream to fix denial of service (Closes: 1054417) > + > + -- Salvo 'LtWorf' Tomaselli <tipos...@tiscali.it> Mon, 23 Oct 2023 > 18:40:22 +0200 > + > weborf (0.17-3) unstable; urgency=medium > > * Disable most of the test suite (flaky on debian builders) > diff -Nru weborf-0.17/debian/patches/cgi_buffer_fix.patch > weborf-0.17/debian/patches/cgi_buffer_fix.patch > --- weborf-0.17/debian/patches/cgi_buffer_fix.patch 1970-01-01 > 01:00:00.000000000 +0100 > +++ weborf-0.17/debian/patches/cgi_buffer_fix.patch 2023-10-23 > 18:40:22.000000000 +0200 > @@ -0,0 +1,25 @@ > +Description: Fix incorrect memory operation > + The original code failed to take into account the space needed for the > + null terminator. > + . > + The patch just avoids the copy altogether, because it was not needed. > +Author: Salvo "LtWorf" Tomaselli <tipos...@tiscali.it> > +Origin: upstream > +Bug: <upstream-bugtracker-url> > +Bug-Debian: https://bugs.debian.org/1054417 > +Forwarded: not-needed > +Applied-Upstream: 1.0 > +Last-Update: 2023-10-23 > + > +--- weborf-0.19.orig/cgi.c > ++++ weborf-0.19/cgi.c > +@@ -228,8 +228,7 @@ static inline void cgi_execute_child(con > + environ = NULL; //Clear env vars > + > + if (strlen(executor) == 0) { > +- executor = malloc(connection_prop->strfile_len + 1); > +- strncpy(executor, connection_prop->strfile, > connection_prop->strfile_len); > ++ executor = connection_prop->strfile; > + } > + > + cgi_set_http_env_vars(connection_prop->http_param); > diff -Nru weborf-0.17/debian/patches/series weborf-0.17/debian/patches/series > --- weborf-0.17/debian/patches/series 2020-12-31 15:13:19.000000000 +0100 > +++ weborf-0.17/debian/patches/series 2023-10-23 18:40:22.000000000 +0200 > @@ -1,2 +1,3 @@ > 0001-sleep_in_http > 002-disable_tests > +cgi_buffer_fix.patch -- Sebastian Ramacher