Skip to content

Add missing AllowElevated policy check when creating a container#1624

Merged
anmaxvl merged 2 commits intomicrosoft:mainfrom
SeanTAllen:missing-priv-check
Jan 27, 2023
Merged

Add missing AllowElevated policy check when creating a container#1624
anmaxvl merged 2 commits intomicrosoft:mainfrom
SeanTAllen:missing-priv-check

Conversation

@SeanTAllen
Copy link
Copy Markdown
Contributor

When we added AllowElevated and checked it was working correctly, we got it slightly wrong. When a container is started, we were adding in expected mounts that only happen for privileged containers and using those are mounts that are allowed.

During testing, if AllowElevated was left off, a privileged container would fail to start seemingly indicating that all was good. However, all was not good.

A malicious orchestrator with control of the API could create a container privileged that didn't contain any extra "privileged mounts" and the container would start as privileged with everything else that being privileged entails except for the mounts.

This commit adds an explicit check as part of crete container to verify that is the container is attempting to be started as privileged that it has AllowElevated.

Maksim and I both thought that this had been implemented. I remember it being implemented. Apparently that memory is incorrect. Either way, it was noticed last Thursday and here's the fix.

Signed-off-by: Sean T. Allen [email protected]

When we added AllowElevated and checked it was working correctly, we
got it slightly wrong. When a container is started, we were adding in
expected mounts that only happen for privileged containers and
using those are mounts that are allowed.

During testing, if AllowElevated was left off, a privileged container
would fail to start seemingly indicating that all was good. However,
all was not good.

A malicious orchestrator with control of the API could create a container
privileged that didn't contain any extra "privileged mounts" and the
container would start as privileged with everything else that being
privileged entails except for the mounts.

This commit adds an explicit check as part of crete container to verify
that is the container is attempting to be started as privileged that it
has AllowElevated.

Maksim and I both thought that this had been implemented. I remember it
being implemented. Apparently that memory is incorrect. Either way, it
was noticed last Thursday and here's the fix.

Signed-off-by: Sean T. Allen <[email protected]>
@SeanTAllen SeanTAllen requested a review from a team as a code owner January 23, 2023 13:37
Copy link
Copy Markdown
Contributor

@helsaawy helsaawy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor feedback, LGTM overall

Comment thread internal/guest/runtime/hcsv2/uvm.go
@anmaxvl anmaxvl merged commit aee13c8 into microsoft:main Jan 27, 2023
@anmaxvl anmaxvl deleted the missing-priv-check branch January 27, 2023 02:37
anmaxvl pushed a commit that referenced this pull request Jan 27, 2023
A change to one of these two checks was requested by Hamza as part
of #1624. It was decided
to get both instances in their own PR as the change was unrelated
to the work in 1624.

Signed-off-by: Sean T. Allen <[email protected]>
princepereira pushed a commit to princepereira/hcsshim that referenced this pull request Aug 29, 2024
…rosoft#1624)

* Add missing AllowElevated policy check when creating a container

When we added AllowElevated and checked it was working correctly, we
got it slightly wrong. When a container is started, we were adding in
expected mounts that only happen for privileged containers and
using those are mounts that are allowed.

During testing, if AllowElevated was left off, a privileged container
would fail to start seemingly indicating that all was good. However,
all was not good.

A malicious orchestrator with control of the API could create a container
privileged that didn't contain any extra "privileged mounts" and the
container would start as privileged with everything else that being
privileged entails except for the mounts.

This commit adds an explicit check as part of crete container to verify
that is the container is attempting to be started as privileged that it
has AllowElevated.

Maksim and I both thought that this had been implemented. I remember it
being implemented. Apparently that memory is incorrect. Either way, it
was noticed last Thursday and here's the fix.

Signed-off-by: Sean T. Allen <[email protected]>
princepereira pushed a commit to princepereira/hcsshim that referenced this pull request Aug 29, 2024
A change to one of these two checks was requested by Hamza as part
of microsoft#1624. It was decided
to get both instances in their own PR as the change was unrelated
to the work in 1624.

Signed-off-by: Sean T. Allen <[email protected]>
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.

3 participants