(krb5_realm_length(principal->realm) * 2) has no explicit type cast #159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello! I was analyzing your module with Svace SAST tool and found a vulnerability here:
spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c
Lines 1384 to 1386 in 60f0811
krb5_realm_length
returns value oflength
variable fromprincipal->realm
.principal->realm
itself has data typekrb5_data
,length
insidekrb5_data
hasunsigned int
type: https://web.mit.edu/kerberos/krb5-devel/doc/appdev/refs/types/krb5_data.html. So it may be an integer overflow while multiplyingkrb5_realm_length(principal->realm)
result without cast to the larger type.It also matters because potential integer overflow makes
tgs_principal_name_size
variable smaller than it have to and it leads to the loss of data here:spnego-http-auth-nginx-module/ngx_http_auth_spnego_module.c
Lines 1388 to 1391 in 60f0811
Fix itself is really simple. Hope it helps!
Found by Linux Verification Center (linuxtesting.org) with SVACE.