Skip to content

Env variable value exposure using multienv with incorrect variable in the chain #5315

Open
@bazilmarkov

Description

@bazilmarkov

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Overview of the Issue

By utilizing atlantis multienv configuration, exposing the entire chain of environmental variables values is possible if one of the variables has an invalid definition.

Reproduction Steps

test.sh returning the multiple environmental variables

#!/bin/bash
set -eu
set -o pipefail

VAR1=value1
VAR2="{\"error\":[\"error:\n\t*\"]}"
echo "VAR1=$VAR1,VAR2=$VAR2"

Repo.yaml

workflows:
  terraform:
    plan:
      steps:
        - multienv:
            command: './test.sh'
            shell: bash

Logs

Invalid environment variable definition: VAR1=value1,VAR2={"error":["error:\n\t*"]}

As a result, the VAR1 value is exposed. Expected behavior - only VAR2-related error is returned

Environment details

  • Atlantis version: 0.33.0
  • Deployment method: docker

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsecurity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions