•  


Call to memset may be deleted — CodeQL query help documentation CodeQL docs

Call to memset may be deleted

ID: cpp/memset-may-be-deleted
Kind: problem
Security severity: 7.8
Severity: warning
Precision: high
Tags:
   - security
   - external/cwe/cwe-14
Query suites:
   - cpp-code-scanning.qls
   - cpp-security-extended.qls
   - cpp-security-and-quality.qls

Click to see the query in the CodeQL repository

Calling memset or bzero on a buffer to clear its contents may get optimized away by the compiler if the buffer is not subsequently used. This is not desirable behavior if the buffer contains sensitive data that could somehow be retrieved by an attacker.

Recommendation

Use alternative platform-supplied functions that will not get optimized away. Examples of such functions include memset_s , SecureZeroMemory , and bzero_explicit . Alternatively, passing the -fno-builtin-memset option to the GCC/Clang compiler usually also prevents the optimization. Finally, you can use the public-domain secure_memzero function (see references below). This function, however, is not guaranteed to work on all platforms and compilers.

Example

The following program fragment uses memset to erase sensitive information after it is no longer needed:

char
 password
[
MAX_PASSWORD_LENGTH
];

// read and verify password

memset
(
password
,
 0
,
 MAX_PASSWORD_LENGTH
);

Because of dead store elimination, the call to memset may be removed by the compiler (since the buffer is not subsequently used), resulting in potentially sensitive data remaining in memory.

The best solution to this problem is to use the memset_s function instead of memset :

char
 password
[
MAX_PASSWORD_LENGTH
];

// read and verify password

memset_s
(
password
,
 MAX_PASSWORD_LENGTH
,
 0
,
 MAX_PASSWORD_LENGTH
);

References

  • © GitHub, Inc.
  • Terms
  • Privacy
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본