CVE-2026-54548: kas: Persistent SSH Host Key Checking Disablement

Published Aug 26, 2026
·
Updated

Summary

kas persistently disables SSH host key checking for the invoking user when internal SSH key setup is triggered via SSHPRIVATEKEY or SSHPRIVATEKEYFILE and no user-specific SSH configuration file exists so far.

When this path is used, kas creates ~/.ssh/config with a global Host rule containing StrictHostKeyChecking no. This was intended to ease the use of kas in short-lived CI environments that lack a pre-configured set of known hosts. In case a local user had no SSH configuration file so far, this approach weakens SSH host authenticity verification beyond the lifetime and scope of the kas command, increasing the risk of successful man-in-the-middle attacks against future SSH connections made by the same user.

Patches

Such SSH configurations were created since the very first public release. The issue is addressed now by commit <FILLME> which is part of kas version 5.4.

Workarounds

Since kas 2.6.3, a local user's SSH configuration is only written if it didn't exist before. From that version on, the issue can be avoided by creating an own ~/.ssh/config prior to calling kas. If kas was already called, ~/.ssh/config should be inspected and undesired settings created by kas should be removed.

Other sources

kas is a setup tool for bitbake based projects. Prior to 5.4, internal SSH key setup triggered by SSHPRIVATEKEY or SSHPRIVATEKEYFILE creates ~/.ssh/config when no user-specific SSH configuration exists and adds a global Host rule containing StrictHostKeyChecking no. In kas/libcmds.py, sshnohostkeycheck() runs without checking ctx.managedenv, so the setting persists after kas exits and affects future SSH sessions by the same local user, extending beyond the intended short-lived continuous integration environment. A later SSH connection can therefore accept an attacker-controlled host key without verification, increasing the risk of a man-in-the-middle attack that compromises session confidentiality or integrity. This issue is fixed in version 5.4.

MITRE

Affected Software

2 affected componentsFixes available
kas kas<5.4
pip/kas<=5.3
5.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/kas to a version that resolves this vulnerability.

    Fixed in 5.4
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 5.4
  3. Configuration

    Inspect the invoking user's ~/.ssh/config after kas was called, and remove any undesired settings created by kas (e.g., the global 'Host *' rule with 'StrictHostKeyChecking no').

    kas (internal SSH configuration via SSH_PRIVATE_KEY / SSH_PRIVATE_KEY_FILE) ~/.ssh/config Host * StrictHostKeyChecking = StrictHostKeyChecking no -> remove undesired settings created by kas
  4. Configuration

    Create an own ~/.ssh/config prior to calling kas, so kas does not write a global 'Host *' rule that disables SSH host authenticity verification.

    kas (use of pre-created SSH config) ~/.ssh/config (existence) = Create ~/.ssh/config before calling kas to avoid kas creating a global Host * rule with 'StrictHostKeyChecking no'.

Event History

Aug 26, 2026
CVE Published
via MITRE·02:17 PM
Data Sourced
via MITRE·02:17 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·02:18 PM
Data Sourced
via GitHub·02:18 PM
DescriptionSeverityWeaknessAffected Software
Data Sourced
via NVD·03:16 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which users are exposed to the persistent configuration change?

The affected path applies when kas performs internal SSH key setup through SSH_PRIVATE_KEY or SSH_PRIVATE_KEY_FILE and the invoking user does not already have a ~/.ssh/config file. kas then creates a user-level configuration that can affect later SSH connections made by that same user.

2

What would an attacker need to take advantage of this condition?

An attacker would need an opportunity to perform a man-in-the-middle attack against a future SSH connection made by the affected user. The created Host * rule disables strict host-key checking globally for that user's SSH client.

3

Are installations with an existing SSH configuration affected by this behavior?

Since kas 2.6.3, kas writes the local SSH configuration only when ~/.ssh/config did not already exist. Creating an SSH configuration before running kas avoids this path on those versions.

4

What should be checked if kas has already been run?

Inspect ~/.ssh/config for a global Host * entry containing StrictHostKeyChecking no. This configuration should be reviewed because it weakens host authenticity verification beyond the kas invocation.

5

What version contains the fix?

The issue is addressed in kas version 5.4.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203