Your message dated Sat, 10 Jan 2026 11:52:34 +0000
with message-id <[email protected]>
and subject line Released with 13.3
has caused the Debian Bug report #1120965,
regarding trixie-pu: package freeradius/3.2.7+dfsg-1+deb13u2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1120965: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120965
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:freeradius
User: [email protected]
Usertags: pu

[ Reason ]
FreeRADIUS 3.2.7 in Trixie contains a bug that causes it to segfault
when a certificate chain with two intermediate certificates are loaded, see

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1120927
https://github.com/FreeRADIUS/freeradius-server/issues/5515

It can be fixed by backporting a single commit from 3.2.8, therefor
unstable is already fixed.

The issue was found, the patch prepared and verified by OdyX

[ Impact ]
Segmentation fault when a new certificate chain is loaded

[ Tests ]
Fix verified by Didier 'OdyX' Radoud
FreeRADIUS has some non-trivial autopkgtest, however that does not test
EAP/TLS-related codepaths

[ Risks ]
Verified fix, direct backport of a commit released with a later upstream
version

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]
- Backporting fix
- Change salsa-ci to run in trixie

[ Other info ]
As CAs tend to change their intermediate structure and may introduce
intermediates with certificate refreshs (as it has happened here for the
original reporter) I consider this somewhat urgent. Therefor I would
like to push this to proposed as soon as possible.
diff -Nru freeradius-3.2.7+dfsg/debian/changelog 
freeradius-3.2.7+dfsg/debian/changelog
--- freeradius-3.2.7+dfsg/debian/changelog      2025-10-01 19:36:38.000000000 
+0200
+++ freeradius-3.2.7+dfsg/debian/changelog      2025-11-18 21:51:33.000000000 
+0100
@@ -1,3 +1,11 @@
+freeradius (3.2.7+dfsg-1+deb13u2) trixie; urgency=medium
+
+  [ Didier Raboud ]
+  * Backport patch to fix segfaults on TLS connections with more than one
+    intermediate certificate (Closes: #1120927)
+
+ -- Bernhard Schmidt <[email protected]>  Tue, 18 Nov 2025 21:51:33 +0100
+
 freeradius (3.2.7+dfsg-1+deb13u1) trixie; urgency=medium
 
   * Non-maintainer upload.
diff -Nru freeradius-3.2.7+dfsg/debian/patches/series 
freeradius-3.2.7+dfsg/debian/patches/series
--- freeradius-3.2.7+dfsg/debian/patches/series 2025-10-01 19:31:39.000000000 
+0200
+++ freeradius-3.2.7+dfsg/debian/patches/series 2025-11-18 21:51:33.000000000 
+0100
@@ -6,3 +6,4 @@
 dont-install-tests.diff
 snakeoil-certs.diff
 fips.patch
+wrap-crl_dp-checks-in-if-certs--lookup-=.patch
diff -Nru 
freeradius-3.2.7+dfsg/debian/patches/wrap-crl_dp-checks-in-if-certs--lookup-=.patch
 
freeradius-3.2.7+dfsg/debian/patches/wrap-crl_dp-checks-in-if-certs--lookup-=.patch
--- 
freeradius-3.2.7+dfsg/debian/patches/wrap-crl_dp-checks-in-if-certs--lookup-=.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
freeradius-3.2.7+dfsg/debian/patches/wrap-crl_dp-checks-in-if-certs--lookup-=.patch
 2025-11-18 21:51:33.000000000 +0100
@@ -0,0 +1,63 @@
+From: Alan T. DeKok <[email protected]>
+Date: Wed, 12 Feb 2025 07:03:13 -0500
+X-Dgit-Generated: 3.2.7+dfsg-1+deb13u1+OdyX0 
05125f178649b7af17a1dc81642b91c937f4d93a
+Subject: wrap crl_dp checks in if (certs && (lookup <= 1). Fixes #5515
+
+
+---
+
+diff --git a/src/main/tls.c b/src/main/tls.c
+index 2e97940..2821b93 100644
+--- a/src/main/tls.c
++++ b/src/main/tls.c
+@@ -3077,30 +3077,33 @@ int cbtls_verify(int ok, X509_STORE_CTX *ctx)
+       /*
+        *      Get the Certificate Distribution points
+        */
+-      crl_dp = X509_get_ext_d2i(client_cert, NID_crl_distribution_points, 
NULL, NULL);
+-      if (crl_dp) {
+-              DIST_POINT *dp;
+-              const char *url_ptr;
++      if (certs && (lookup <= 1)) {
++              crl_dp = X509_get_ext_d2i(client_cert, 
NID_crl_distribution_points, NULL, NULL);
+ 
+-              for (int i = 0; i < sk_DIST_POINT_num(crl_dp); i++) {
+-                      size_t len;
+-                      char cdp[1024];
++              if (crl_dp) {
++                      DIST_POINT *dp;
++                      const char *url_ptr;
+ 
+-                      dp = sk_DIST_POINT_value(crl_dp, i);
+-                      if (!dp) continue;
++                      for (int i = 0; i < sk_DIST_POINT_num(crl_dp); i++) {
++                              size_t len;
++                              char cdp[1024];
+ 
+-                      url_ptr = get_cdp_url(dp);
+-                      if (!url_ptr) continue;
++                              dp = sk_DIST_POINT_value(crl_dp, i);
++                              if (!dp) continue;
+ 
+-                      len = strlen(url_ptr);
+-                      if (len >= sizeof(cdp)) continue;
++                              url_ptr = get_cdp_url(dp);
++                              if (!url_ptr) continue;
+ 
+-                      memcpy(cdp, url_ptr, len + 1);
++                              len = strlen(url_ptr);
++                              if (len >= sizeof(cdp)) continue;
+ 
+-                      vp = fr_pair_make(talloc_ctx, certs, 
cert_attr_names[FR_TLS_CDP][lookup], cdp, T_OP_ADD);
+-                      rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
++                              memcpy(cdp, url_ptr, len + 1);
++
++                              vp = fr_pair_make(talloc_ctx, certs, 
cert_attr_names[FR_TLS_CDP][lookup], cdp, T_OP_ADD);
++                              rdebug_pair(L_DBG_LVL_2, request, vp, NULL);
++                      }
++                      sk_DIST_POINT_pop_free(crl_dp, DIST_POINT_free);
+               }
+-              sk_DIST_POINT_pop_free(crl_dp, DIST_POINT_free);
+       }
+ 
+       /*
diff -Nru freeradius-3.2.7+dfsg/debian/salsa-ci.yml 
freeradius-3.2.7+dfsg/debian/salsa-ci.yml
--- freeradius-3.2.7+dfsg/debian/salsa-ci.yml   2025-02-10 22:50:22.000000000 
+0100
+++ freeradius-3.2.7+dfsg/debian/salsa-ci.yml   2025-11-18 21:51:33.000000000 
+0100
@@ -3,7 +3,7 @@
  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
 
 variables:
-  RELEASE: 'unstable'
+  RELEASE: 'trixie'
 
 # mark currently failing tests as allowed to fail
 blhc:

--- End Message ---
--- Begin Message ---
Package: release.debian.org\nVersion: 13.3\n\nThis update has been released as 
part of Debian 13.3.

--- End Message ---

Reply via email to