Skip to content

Conversation

smortex
Copy link
Collaborator

@smortex smortex commented Feb 8, 2022

PuppetDB runs as the puppetdb user. This user must have read access to the various configuration files but does not need write access to them.

This ensure the service configuration cannot be unexpectedly changed by PuppetDB itself if some vulnerability allow random code execution, limiting the possibilities of exploitation and pivoting if such a vulnerability is found.

This is a companion PR to #342: the FreeBSD port insists on secure file permissions and will enforce them when the service start. On next Puppet run, the module will consider it configuration drift and revert the previous less paranoid configuration and reload the service which will harden the files mode immediatly. Rather than optionaly ignoning the files mode, it makes more sense to use an hardened configuration by default.

PuppetDB runs as the puppetdb user.  This user must have read access to
the various configuration files but does not need write access to them.

This ensure the service configuration cannot be unexpectedly changed by
PuppetDB itself if some vulnerability allow random code execution,
limiting the possibilities of exploitation and pivoting if such a
vulnerability is found.
@smortex smortex requested a review from a team as a code owner February 8, 2022 02:40
@puppet-community-rangefinder
Copy link

puppetdb::server is a class

that may have no external impact to Forge modules.

puppetdb::server::database is a class

that may have no external impact to Forge modules.

puppetdb::server::global is a class

that may have no external impact to Forge modules.

puppetdb::server::jetty is a class

that may have no external impact to Forge modules.

puppetdb::server::puppetdb is a class

that may have no external impact to Forge modules.

puppetdb::server::read_database is a class

that may have no external impact to Forge modules.

This module is declared in 33 of 578 indexed public Puppetfiles.


These results were generated with Rangefinder, a tool that helps predict the downstream impact of breaking changes to elements used in Puppet modules. You can run this on the command line to get a full report.

Exact matches are those that we can positively identify via namespace and the declaring modules' metadata. Non-namespaced items, such as Puppet 3.x functions, will always be reported as near matches only.

@CLAassistant
Copy link

CLAassistant commented Apr 19, 2023

CLA assistant check
All committers have signed the CLA.

@h0tw1r3 h0tw1r3 force-pushed the security-file-permissions branch from 810aa3c to 36a8cd8 Compare May 5, 2024 16:33
@smortex smortex requested a review from bastelfreak as a code owner May 5, 2024 16:33
@bastelfreak bastelfreak merged commit 1475311 into puppetlabs:main May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants