Skip to main content

SQ14150

Detected Windows executable files that implicitly modify headers during loading with function code or relocations.

priorityCI/CD statusseverityeffortRL levelRL assessment
failhighhigh4hardening: fail
Reason: critical code linking issues

About the issueโ€‹

Windows executable files are mapped in memory as a sequence of allocated pages backed by its physical content. The pages are grouped into sections with defined access rights. Starting executable file memory regions are reserved for the Portable Executable (PE) header, which has read-only access rights due to its criticality. Even the operating system should not implicitly modify the header contents. No operation during the image load sequence should write its results, nor relocate any data, to and from the headers. Vulnerability mitigations are implemented with the assumption that the headers are read-only, or immutable. Allowing headers to self-modify may lead to exposing critical security data to overwrites, tampering, and complete bypasses of vulnerability mitigations. This issue is typically reported when a software publisher uses a low quality executable packing solution.

How to resolve the issueโ€‹

  • You should deprecate the use of runtime packers, or enforce digital rights management via less intrusive ways that preserve compatibility with vulnerability mitigation options.

Incidence statisticsโ€‹

ReversingLabs periodically collects and analyzes the contents of popular software package repositories for threat research purposes.

For every repository, the chart shows the percentage of projects that triggered the software assurance policy. In other words, it shows how many projects were found to have the specific issue described on this page.

The percentages are calculated from the total amount of packages analyzed:

  • RubyGems: 174K
  • Nuget: 189K
  • PyPi: 403K
  • NPM: 2.1M