Users login

Create an account »

JOIN XATRIX

Users login

Home » Security Advisories» FreeBSD » OPIE arbitrary password change

OPIE arbitrary password change

If the attacker is able to authenticate as root using OPIE authentication, for example if "PermitRootLogin" is set to "yes" in sshd_config or the attacker has access to a local user in the "wheel" group, the attacker can gain root privileges.

  • Vendor: FreeBSD
  • Vendor ID: SA-06:12.opie
  • Date: March 22, 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

===================================================================
FreeBSD-SA-06:12.opie Security Advisory
The FreeBSD Project

Topic: OPIE arbitrary password change

Category: contrib
Module: contrib_opie
Announced: 2006-03-22
Credits: Mykola Zubach
Affects: All FreeBSD releases.
Corrected: 2006-03-22 16:01:08 UTC (RELENG_6, 6.1-STABLE)
2006-03-22 16:01:38 UTC (RELENG_6_0, 6.0-RELEASE-p6)
2006-03-22 16:01:56 UTC (RELENG_5, 5.5-STABLE)
2006-03-22 16:02:17 UTC (RELENG_5_4, 5.4-RELEASE-p13)
2006-03-22 16:02:35 UTC (RELENG_5_3, 5.3-RELEASE-p28)
2006-03-22 16:02:49 UTC (RELENG_4, 4.11-STABLE)
2006-03-22 16:03:05 UTC (RELENG_4_11, 4.11-RELEASE-p16)
2006-03-22 16:03:25 UTC (RELENG_4_10, 4.10-RELEASE-p22)
CVE Name: CVE-2006-1283

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
;.

I. Background

OPIE is a one-time password system designed to help to secure a system
against replay attacks. It does so using a secure hash function and a
challenge/response system. The opiepasswd(1) program is used to set
up OPIE authentication for a user. OPIE is enabled by default on
FreeBSD through PAM.

II. Problem Description

The opiepasswd(1) program uses getlogin(2) to identify the user
calling opiepasswd(1). In some circumstances getlogin(2) will return
"root" even when running as an unprivileged user. This causes
opiepasswd(1) to allow an unpriviled user to configure OPIE
authentication for the root user.

III. Impact

In certain cases an attacker able to run commands as a non privileged
users which have not explicitly logged in, for example CGI scripts run
by a web server, is able to configure OPIE access for the root user.
If the attacker is able to authenticate as root using OPIE
authentication, for example if "PermitRootLogin" is set to "yes" in
sshd_config or the attacker has access to a local user in the "wheel"
group, the attacker can gain root privileges.

IV. Workaround

Disable OPIE authentication in PAM:

# sed -i "" -e /opie/s/^/#/ /etc/pam.d/*

or

Remove the setuid bit from opiepasswd:

# chflags noschg /usr/bin/opiepasswd
# chmod 555 /usr/bin/opiepasswd
# chflags schg /usr/bin/opiepasswd

V. Solution

Perform one of the following:

1) Upgrade your vulnerable system to 4-STABLE, 5-STABLE, or 6-STABLE,
or to the RELENG_6_0, RELENG_5_4, RELENG_5_3, RELENG_4_11, or
RELENG_4_10 security branch dated after the correction date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 4.10,
4.11, 5.3, 5.4, and 6.0 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:12/opie.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:12/opie.patch.asc

b) Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/usr.bin/opiepasswd
# make obj && make depend && make && make install

VI. Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch Revision
Path
- -------------------------------------------------------------------------
RELENG_4
src/contrib/opie/opiepasswd.c 1.1.1.2.6.4
RELENG_4_11
src/UPDATING 1.73.2.91.2.17
src/sys/conf/newvers.sh 1.44.2.39.2.20
src/contrib/opie/opiepasswd.c 1.1.1.2.6.3.10.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.23
src/sys/conf/newvers.sh 1.33.2.34.2.24
src/contrib/opie/opiepasswd.c 1.1.1.2.6.3.8.1
RELENG_5
src/contrib/opie/opiepasswd.c 1.3.8.1
RELENG_5_4
src/UPDATING 1.342.2.24.2.22
src/sys/conf/newvers.sh 1.62.2.18.2.18
src/contrib/opie/opiepasswd.c 1.3.12.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.31
src/sys/conf/newvers.sh 1.62.2.15.2.33
src/contrib/opie/opiepasswd.c 1.3.10.1
RELENG_6
src/contrib/opie/opiepasswd.c 1.3.14.1
RELENG_6_0
src/UPDATING 1.416.2.3.2.11
src/sys/conf/newvers.sh 1.69.2.8.2.7
src/contrib/opie/opiepasswd.c 1.3.16.1
- -------------------------------------------------------------------------

VII. References

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1283

The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:12.opie.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (FreeBSD)

iD8DBQFEIXZNFdaIBMps37IRAoChAJ9ZFa+7jKF11vpUOKxmh8FqcG3EXgCfYOqj
/M5ncIaa4gs6P9wihbZ1vZc=
=fccv
-----END PGP SIGNATURE-----

Newsletter signup

Signup to our monthly newsletter and stay in touch with IT news!

Free E-books

We've got ebooks! But they're not online. :( Please give us a few days to bring downloads back.

Contact

Have something to say or just wanna drop us a line? Please keep this in mind: to spam, we reply with spam.

Contact us »