[Bug 1918313] [NEW] code in rpc.svcgssd treats date as signed 32-bit

Charles Hedrick 1918313 at bugs.launchpad.net
Tue Mar 9 17:53:51 UTC 2021


Public bug reported:

Upstream patch eb3a145789b9eedd39b56e1d76f412435abaa747 adds code to
rpc.svcgssd to set an expiration date for nfs contexts. (It doesn't
work, but that's the subject of a different bug.) That code treats the
date is int32. It is sent into the kernel using code that ends up as a
printf %d. In 2038 the date will go negative. Because the kernel uses
64-bit dates I believe that will produce the wrong result.

The code should use data_t, not int32_t.

This is complicated by the fact that it gets the date from a Kerberos
ticket. Kerberos declares date as int32. For historical reaosns, they
have decided to retain it as int32, but whenever there's a comparison or
arithemtic that would break, they cast it (date_t)(u_int32_t). I believe
the code in svcgssdd should do the same. All variables should be date_t.
Anything retrieved from a Kerberos ticket should be cast
(date_t)(u_int32_t).

THis is actually a problem upstream. But it's not clear that upstream
has any reason to fix it. Redhat is no longer using rpc.svcgssd. They're
using gssproxy to handle the upcall from the kernel. So it's not clear
that there's any significant use of svcgssd other than Ubuntu.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: nfs-common 1:1.3.4-2.5ubuntu3.3 [modified: usr/sbin/rpc.svcgssd]
ProcVersionSignature: Ubuntu 5.4.0-65.73-generic 5.4.78
Uname: Linux 5.4.0-65-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu27.16
Architecture: amd64
CasperMD5CheckResult: skip
Date: Tue Mar  9 12:46:12 2021
InstallationDate: Installed on 2020-03-25 (348 days ago)
InstallationMedia: Ubuntu 18.04.3 LTS "Bionic Beaver" - Release amd64 (20190805)
ProcEnviron:
 TERM=vt100
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/tcsh
SourcePackage: nfs-utils
UpgradeStatus: Upgraded to focal on 2020-12-21 (78 days ago)
modified.conffile..etc.default.apport: [modified]
mtime.conffile..etc.default.apport: 2020-08-10T17:26:17.512725
mtime.conffile..etc.default.nfs-common: 2020-04-16T16:03:31.356462

** Affects: nfs-utils (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug focal

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to nfs-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1918313

Title:
  code in rpc.svcgssd treats date as signed 32-bit

Status in nfs-utils package in Ubuntu:
  New

Bug description:
  Upstream patch eb3a145789b9eedd39b56e1d76f412435abaa747 adds code to
  rpc.svcgssd to set an expiration date for nfs contexts. (It doesn't
  work, but that's the subject of a different bug.) That code treats the
  date is int32. It is sent into the kernel using code that ends up as a
  printf %d. In 2038 the date will go negative. Because the kernel uses
  64-bit dates I believe that will produce the wrong result.

  The code should use data_t, not int32_t.

  This is complicated by the fact that it gets the date from a Kerberos
  ticket. Kerberos declares date as int32. For historical reaosns, they
  have decided to retain it as int32, but whenever there's a comparison
  or arithemtic that would break, they cast it (date_t)(u_int32_t). I
  believe the code in svcgssdd should do the same. All variables should
  be date_t. Anything retrieved from a Kerberos ticket should be cast
  (date_t)(u_int32_t).

  THis is actually a problem upstream. But it's not clear that upstream
  has any reason to fix it. Redhat is no longer using rpc.svcgssd.
  They're using gssproxy to handle the upcall from the kernel. So it's
  not clear that there's any significant use of svcgssd other than
  Ubuntu.

  ProblemType: Bug
  DistroRelease: Ubuntu 20.04
  Package: nfs-common 1:1.3.4-2.5ubuntu3.3 [modified: usr/sbin/rpc.svcgssd]
  ProcVersionSignature: Ubuntu 5.4.0-65.73-generic 5.4.78
  Uname: Linux 5.4.0-65-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu27.16
  Architecture: amd64
  CasperMD5CheckResult: skip
  Date: Tue Mar  9 12:46:12 2021
  InstallationDate: Installed on 2020-03-25 (348 days ago)
  InstallationMedia: Ubuntu 18.04.3 LTS "Bionic Beaver" - Release amd64 (20190805)
  ProcEnviron:
   TERM=vt100
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/tcsh
  SourcePackage: nfs-utils
  UpgradeStatus: Upgraded to focal on 2020-12-21 (78 days ago)
  modified.conffile..etc.default.apport: [modified]
  mtime.conffile..etc.default.apport: 2020-08-10T17:26:17.512725
  mtime.conffile..etc.default.nfs-common: 2020-04-16T16:03:31.356462

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/1918313/+subscriptions



More information about the foundations-bugs mailing list