PowerShell / PowerShell/PowerShell

FIPS restrictions bypass

Open
#26,096 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Needs-Triage WG-Security
Dominant language
C#
Stars
55.5k
Forks
8.5k
Avg merge
1d 2h
Merged PRs (30d)
88

Description

Prerequisites
Steps to reproduce

Having a Linux FIPS compliance system, just download and install latest version of PowerShell following these steps:

mkdir -p /app
mkdir -p /opt/powershell/bin
mkdir -p /tmp/pkg/cache/ ; cd /tmp/pkg/cache/ || exit 1 ;
curl -SsLf "https://github.com/PowerShell/PowerShell/releases/download/v7.5.3/powershell-7.5.3-linux-arm64.tar.gz" -O 
tar -zxf "powershell-7.5.3-linux-arm64.tar.gz" -C /opt/powershell/bin --no-same-owner
chmod +x "/opt/powershell/bin/pwsh"
rm -rf "powershell-7.5.3-linux-arm64.tar.gz"
export PS_INSTALL_FOLDER="/opt/powershell/bin"
Expected behavior
An error occurs when I try to use forbidden algorithms.
Actual behavior
root [ ~ ]# openssl version
OpenSSL 3.0.16 11 Feb 2025 (Library: OpenSSL 3.0.16 11 Feb 2025)
root [ ~ ]# openssl md5 /etc/ssl/openssl.cnf
Error setting digest
20C06785FFFF0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:386:Global default library context, Algorithm (MD5 : 102), Properties ()
20C06785FFFF0000:error:03000086:digital envelope routines:evp_md_init_internal:initialization error:crypto/evp/digest.c:254:
root [ ~ ]# pwsh -C "Get-FileHash -Path /etc/ssl/openssl.cnf -Algorithm MD5"

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
MD5             62FBD4A7041201E791A582AF31E7BB14                                       /etc/ssl/openssl.cnf

root [ ~ ]# echo $OPENSSL_FIPS
yes
Error details

Environment data
PowerShell 7.5.3
PS /app> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.5.3
PSEdition                      Core
GitCommitId                    7.5.3
OS                             VMware Photon OS/Linux
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Visuals

No response

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 reproducing the OpenSSL MD5 failure and the PowerShell Get-FileHash MD5 result on the stated Linux FIPS environment. Trace the Get-FileHash entry point and hashing implementation to determine where FIPS restrictions are bypassed. Done means forbidden algorithms are rejected consistently with the system's FIPS behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, linux
Domain
cli, operating-systems, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.