[Bug 1813833] Re: User without read permission on cron.allow can execute crontab

Seth Arnold 1813833 at bugs.launchpad.net
Thu Feb 7 03:21:10 UTC 2019


Hello Brandon,

I wasn't able to use an untrusted user account to induce this behaviour.
So, I'm making this bug public so that more people can be made aware of
the misconfiguration that is being encouraged.

It's unfortunate that the providers of this advice never actually tested
it themselves.

It's unfortunate that the cron manpages don't detail proper permissions
for these files.

It's unfortunate that crontab(1) doesn't perform this access control
check while it has root privileges.

It's perhaps most especially unfortunate that this check isn't actually
performed by cron(8) at all -- a user listed in /etc/cron.deny isn't
actually denied running cron jobs, but is denied managing cron jobs.
Existing configurations would keep working. (Probably this is not news
to most sysadmins but I'd long since forgotten this detail.)

So now, the question is what remediation do we take?

- adjusting cron(8) feels like a good idea but would take a fair chunk
of effort to not be silly about the implementation. It might also break
configurations using the 'gatekeeping' feature of crontab(1).

- adjusting crontab(1). I'm not sure how much work this would take but
feels like a good approach.

- fixing the manpages to describe the correct permissions. This feels
like a good idea regardless of changes we may make to crontab(1).

Thanks

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

Title:
  User without read permission on cron.allow can execute crontab

Status in cron package in Ubuntu:
  New

Bug description:
  /etc/cron.allow is meant to list the users who are allowed to execute
  crontab. For a user who is not listed, the output should be:

  $ crontab -e
  You (ubuntu) are not allowed to use this program (crontab)
  See crontab(1) for more information

  When /etc/cron.allow is not readable by that user, though, it's
  treated as though the file doesn't exist at all:

  $ sudo chmod o-r /etc/cron.allow 
  $ crontab -e
  <opens the crontab editor; on exit: >
  crontab: installing new crontab

  The obvious workaround is to ensure that /etc/cron.allow is world
  readable, but unfortunately there are a lot of security tools and
  documentation out there that explicitly require both using cron.allow
  and also setting the permission on cron-related files to 600. Examples
  include https://secscan.acron.pl/ubuntu1604/5/1/8 and the CIS Level 1
  benchmark for Ubuntu.

  The result of this bug is that a sysadmin attempting to lock down cron
  by following standard security guidance will fail to do so.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cron/+bug/1813833/+subscriptions



More information about the foundations-bugs mailing list