Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2024 10:41:47 +0200
From:      Jan Behrens <jbe-mlist@magnetkern.de>
To:        freebsd-security@freebsd.org
Subject:   Privileges using security tokens through PC/SC-daemon
Message-ID:  <20240904104147.8c1e74632b2c6d4f6a759ee6@magnetkern.de>

next in thread | raw e-mail | index | archive | help
Hello,

I'm using packages "pcsc-lite-2.2.2,2" and "polkit-124_3" and set
"pcscd_enable" to "YES" in "/etc/rc.conf".

My computer has a YubiKey 5 NFC with firmware version 5.7.1 connected
to it. When I create an unprivileged user account and log in from a
remote machine (through ssh), then this unprivileged user account can
use "ykman" to access my security key and, for example, list stored
credentials, generate one-time tokens, erase or temporariliy block the
device (by providing a wrong PIN), or even effectively brick it (if no
configuration password is set).

As far as I understand, polkit should prohibit this. pcsc-lite installs
a file "/usr/local/share/polkit-1/actions/org.debian.pcsc-lite.policy"
with the following contents:

------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">;
<policyconfig>
  <vendor>The PCSC-lite Project</vendor>
  <vendor_url>https://pcsclite.apdu.fr/</vendor_url>;
<!--  <icon_name>smart-card</icon_name> -->

  <action id="org.debian.pcsc-lite.access_pcsc">
    <description>Access to the PC/SC daemon</description>
    <message>Authentication is required to access the PC/SC daemon</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

  <action id="org.debian.pcsc-lite.access_card">
    <description>Access to the smart card</description>
    <message>Authentication is required to access the smart card</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

</policyconfig>
------------

Changing "allow_active" from "yes" to "no" and restarting "pcscd" has
no impact either.

I don't understand what is going on, but this behavior doesn't seem to
be correct. A non-privileged user (that isn't even member of group
"u2f") should not gain access to a security token plugged into the
machine.

Is this behavior reproducible by others, or maybe just a configuration
mistake by me?

I previously mentioned this issue here:
https://forums.FreeBSD.org/threads/94605/post-670209

Kind Regards,
Jan Behrens



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20240904104147.8c1e74632b2c6d4f6a759ee6>