#1101371 libnss-db: does not keep db files opened when iterating through them

Package:
libnss-db
Source:
libnss-db
Description:
NSS module for using Berkeley Databases as a naming service
Submitter:
Francois Lesueur
Date:
2026-10-28 18:29:01 UTC
Severity:
normal
Tags:
#1101371#5
Date:
2025-03-26 16:00:40 UTC
From:
To:
Dear Maintainer,

libnss-db uses a "stayopen" parameter in db-XXX.c which does not seem used anymore by the glibc (and is always 0, in our tests). This parameter is used to decide if the databases should be kept opened during iterations.

For instance, during a "getent passwd", the current libnss-db opens and closes the passwd.db file for each line in passwd, which is quite slow.

We believe usage of this parameter has been removed in the glibc:
- For instance, glibc/nss/nss_files/files-XXX.c simply ignores it since 2016 in `CONCAT(_nss_files_set,ENTNAME) (int stayopen)`;
- nss-pam-ldap does the same in nss/passwd.c with `nss_status_t NSS_NAME(setpwent)(int UNUSED(stayopen))`.

History seems to be linked to the mitigation of CVE-2014-8121.

The attached patch ignores the stayopen parameter and forces to keep the DB file opened.

Kind regards,
François Lesueur -- alwaysdata
--- libnss-db-2.2.3pre1-orig/src/db-XXX.c	2025-03-10 14:15:07.000000000 +0100
+++ libnss-db-2.2.3pre1/src/db-XXX.c	2025-03-10 14:23:59.457342846 +0100
@@ -72,9 +72,9 @@

   status = internal_setent (DBFILE, &db, &dbenv);

-  /* Remember STAYOPEN flag.  */
+  /* Ignore STAYOPEN flag.  */
   if (db != NULL)
-    keep_db |= stayopen;
+    keep_db = 1;
   /* Reset the sequential index.  */
   entidx = 0;

#1101371#10
Date:
2026-10-28 18:27:40 UTC
From:
To:
Dear submitter,

as the package libnss-db has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/1151561

The version of this package that was in Debian prior to this removal
can still be found using https://snapshot.debian.org/.

Please note that the changes have been done on the master archive and
will not propagate to any mirrors until the next dinstall run at the
earliest.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Thorsten Alteholz (the ftpmaster behind the curtain)