microsoft / microsoft/azurelinux

[3.0] Add keyutils to CBL-Mariner base image

Open
#8,810 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

3.0 feature-request
Dominant language
Python
Stars
5.3k
Forks
707
Avg merge
2d 18h
Merged PRs (30d)
235

Description

Is your feature request related to a problem? Please describe.
Bug reports have been filed against WSL2 because of failures of the Linux Kernel's Key Request Service. The Key Request Service provides an upcall mechanism as documented in Documentation/security/keys/request-key.rst where the kernel executes an instance of /sbin/request-key for each request. The request-key process is provided by the keyutils package. If the /sbin/request-key process cannot be located in the mount namespace of the root filesystem, then the upcalls will fail with an -ENOENT error. The Key Request service is used in support of keyring management, DNS queries, and id-mapping.

Describe the solution you'd like
Please install keyutils as part of the base image

Describe alternatives you've considered
Installation of keyutils in an WSL2 distro container does not work because the installed /sbin/request-key cannot be located in the mount namespace of the root filesystem.

Additional context
A working key request service is necessary to support various Linux kernel options including

  1. CONFIG_CIFS_UPCALL, CONFIG_CIFS_DFS_UPCALL, CONFIG_CIFS_SWN_UPCALL: https://github.com/microsoft/WSL/issues/9540
  2. CONFIG_AFS_FS: https://github.com/microsoft/WSL/issues/11458
  3. CONFIG_NFS_USE_KERNEL_DNS
  4. CONFIG_CEPH_LIB_USE_DNS_RESOLVER
  5. NFS ID Mapper

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the CBL-Mariner 3.0 base-image package manifest or build entry point and review how packages are added. Add keyutils to the base image, then build or test the image and verify that /sbin/request-key is present in the root filesystem. Done means the base image includes the keyutils-provided request-key executable.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.