-
Notifications
You must be signed in to change notification settings - Fork 870
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIX: [CodeQL: SM02196] Weak cryptography in TrackingConfigHashAlgorithm.cs #5065
base: master
Are you sure you want to change the base?
Conversation
@microsoft-github-policy-service agree company="Microsoft" |
…b.com/microsoft/azure-pipelines-agent into user/mdhingra/weakHash_trackingConfig updating branch
@@ -99,7 +103,14 @@ public void TrackingConfig_ctor_should_fill_in_fields_correctly() | |||
Assert.Equal(DefinitionName, config.DefinitionName); | |||
Assert.Equal(3, config.FileFormatVersion); | |||
Assert.Equal(null, config.FileLocation); | |||
Assert.Equal("ea7c71421cca06c927f73627b66d6b4f4c3a5f4a", config.HashKey); | |||
if (useSha256) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is this being tested for both configurations ? i.e. UseSha256InComputeHash is off and when it is on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable useSha256 will capture the value of knob, and then we compare with the respective hash value
|
||
// Make sure that different coll creates different hash | ||
Assert.Equal("2a41800cd3e7f5983a7643698f67104ed95101f3", TrackingConfigHashAlgorithm.ComputeHash("FFFA5D79-7735-49E3-87DA-02E76CF8D03A", definitionId, new[] { repo1 })); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we keep old ones as well instead of replacing.
Context
In TrackingConfigHashAlgorithm.cs, SHA1 was being used to compute the hashKey, which is used to identify the tracking config file in the agent system and hence the workspace identifier.
Change Description
The PR addresses the CodeQL warning of using a weak hash algortihm by replacing it with SHA256 based on the recommendations - SM02196
Also it updates the existing Unit Tests with the updated hash values from the new algorithm.
The PR also introduces a new dynamic Feature Flag (UseSha256InComputeHash) in case we want to rollback.
Validations