Skip to content

Release 18.1.6 - #2399

Merged
sk-keeper merged 24 commits into
masterfrom
release
Sep 26, 2026
Merged

sk-keeper merged 24 commits into
masterfrom
release

Conversation

@sk-keeper

Copy link
Copy Markdown
Collaborator

No description provided.

lthievenaz-keeper and others added 24 commits September 10, 2026 09:20
…ser permissions (#2347) (#2359)

* Prevent delegated admin privilege escalation by checking user permissions before granting transfer_account, manage_teams, manage_companies, etc.

* Fix cascade privilege bug, batch error handling (return→continue), enforce removal restriction, case-insensitive usernames, extract helpers and constants

* Reuse get_user_root_nodes for root-admin check, gate privilege removal

Root-admin detection for require_account_share now reuses EnterpriseCommand.get_user_root_nodes() (bitmask-based root identification) instead of a bespoke parent_id walk, avoiding drift from the existing vetted implementation. Privilege authorization check now also gates removal, not just grants, since a node admin without transfer_account/manage_teams/manage_companies could otherwise strip those privileges from a role that depends on them. Added tests for manage_companies denial and removal authorization (denied/allowed).
…ndows (#2361) (#2366)

* Fix background service mode and ngrok breaking in windows

* Change tunnel logs save directory

* Refactor and error handling for ngrok

* Fix copilot review points

* Fix claude review points

* Fix test cases

* Fix review comments

* Fix review comments
…2353) (#2364)

* Enforce allow_pam_gateway policy on pam gateway new/remove

Commander let any user create and delete PAM Gateways via pam gateway
new/remove regardless of their role's "Can create, deploy, and manage
Keeper Gateways" enforcement policy, since the commands only checked
KSM Application record access, not the gateway-specific enforcement
flag. Mirrors the existing PAM tunnel/connection/rotation enforcement
gates using the shared is_pam_action_allowed_by_enforcement helper.
Also patched the legacy discoveryrotation_v1 commands, reachable via
pam legacy, to close the same bypass there.

* Add legacy PAM gateway test coverage, dedupe enforcement check

* Add mixed-permission test coverage for PAM gateway enforcement
* Very first cut at adding HashiCorp PAM config support.

* Renamed pamHashiCorpVaultConfiguration to pamHashiCorpConfiguration.

* Added pamHashiCorpId configuration attribute.

* Finished support for hashicorp-id attribute.
…and record-update (#2362) (#2369)

* Fix security issue exposing sensitive data from bankAccount, bankCard, sshKeys,
softwareLicense, and encryptedNotes records in Docker logs during record-add
and record-update operations.

- Add protobuf JSON sanitization to mask sensitive fields in DEBUG logs
- Enhance service API logging patterns to cover prefixed field formats
- Add 17 comprehensive unit and integration tests

Sensitive values now masked with *** at both protobuf and service API layers.

* Add licenseNumber and encryptedNote masking; add comprehensive logging tests for all command formats

* Consolidate sanitization logic into shared module with custom field label patterns

* updated test file with correct import

* fixed incorrect fucntion call

* removed duplicate SENSITIVE_FIELD_TYPES, removed redundant if/else and updated copyright year and contact email

* removed login field from the sensitive field types since it's just the username and is already visible in the vault

* Removed the email sanitization pattern

* removed encryption for --notes values

* Add note field masking for encryptedNotes records
* Restrict app-setup command lists to their own allowlist

* Add nsf-move command to terraform-app-setup command list

* Handle empty string case

* Fix review comments
…2365) (#2379)

* Fix Gateway Name not displayed in pam rotation info output

* Add UID type normalization and graceful error handling to gateway name resolution

* Improve gateway name resolution: add UID validation and specific exception logging

* Prevent None == None false positive by explicitly checking target_uid before gateway lookup
#2372)

* Block Service Mode from ever accessing its own config records

* Fix copilot review comments

* Fix claude review comments

* Fix review comments
…ess (#2383) (#2385)

* Protect Integration config records from Service Mode API access

* Add terraform backward compatability and test cases

* Fix review comments

* Fix failing test case in windows

* Restrict folder access via Service Mode for all *-setup commands

* Prevent config and service config json file attachments

* Fix claude review comments
…and fix ${VARNAME} expansion bypass (#2389) (#2392)

* Protect SailPoint config record from Service Mode and fix ${VARNAME} expansion bypass

* Fix entitlements not working

* Fix copilot review comments

* Fix claude's review comments

* Use Map instead of dict

* Fix review comment
…phemeral JIT credential, proxy banner, tunnel registry
@sk-keeper
sk-keeper merged commit a2c9ef6 into master Sep 26, 2026
5 checks passed
'127.0.0.1' not in match and
'trycloudflare.com' in match or 'cfargotunnel.com' in match or custom_domain in match if custom_domain else True):
if ('localhost' not in match and '127.0.0.1' not in match and
('trycloudflare.com' in match or 'cfargotunnel.com' in match
Comment thread keepercommander/service/util/tunneling.py Dismissed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.