Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. basti-cdk
  4. ›
  5. GMS-2023-2036

GMS-2023-2036: Minimal `basti` IAM Policy Allows Shell Access

August 24, 2023

Summary

The provided Minimal IAM Policy for bastic connect does not include ssm:SessionDocumentAccessCheck. This results in the ability to get a shell session on the bastion, not just the intended access for Port Forwarding.

Details

basti connect is designed to “securely connect to your RDS/Aurora/Elasticache/EC2 instances”, using a bastion instance “with AWS Session Manager port forwarding capability to make the target available on your localhost.”

The Minimal IAM Policy allows port forwarding via the following statement:

 {
   "Effect": "Allow",
   "Action": "ssm:StartSession",
   "Resource": [
 "arn:aws:ssm:*:*:document/AWS-StartPortForwardingSessionToRemoteHost",
    "arn:aws:ec2:<your-region>:<your-account-id>:instance/<your-basti-instance-id>"
   ]
  }

This statement does not include the following condition:

"Condition": {
  "BoolIfExists": {
    "ssm:SessionDocumentAccessCheck": "true"
  }
}

As a result, the basti connect minimal policy is logically identical to:

 {
   "Effect": "Allow",
   "Action": "ssm:StartSession",
   "Resource": [
    "arn:aws:ssm:*:*:document/AWS-StartPortForwardingSessionToRemoteHost",
    "arn:aws:ssm:*:*:document/SSM-SessionManagerRunShell",
 "arn:aws:ec2:<your-region>:<your-account-id>:instance/<your-basti-instance-id>"
   ]
  }

A basti admin would expect users under the minimal policy to be able to port forward. However, they could also get a shell on the bastion.

For more details on this footgun, see: https://ramimac.me/ssm-iam

PoC

Complete instructions, including specific configuration details, to reproduce the vulnerability.

Impact

Impact would depend on configuration/hardening of the bastion. I’ve seen examples where bastions have credentials to downstream systems in configuration or memory that would be exposed.

References

  • github.com/BohdanPetryshyn/basti/commit/f6f218e7cd450e29aeb616960b7abbe8dfc87796
  • github.com/BohdanPetryshyn/basti/security/advisories/GHSA-q4pp-j36h-3gqg
  • github.com/advisories/GHSA-q4pp-j36h-3gqg

Code Behaviors & Features

Detect and mitigate GMS-2023-2036 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.0.1

Fixed versions

  • 1.0.1

Solution

Upgrade to version 1.0.1 or above.

Source file

npm/basti-cdk/GMS-2023-2036.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:15:37 +0000.