Register-Based Return Address Checking Against ROP Stack Overflow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for protecting against Return-Oriented Programming (ROP) attacks, such as duplicating the call stack in RAM, are resource-intensive and vulnerable to modification, posing challenges for embedded systems like microcontrollers.

Innovation Solution

Storing a return address and stack pointer in dedicated registers within the computer system's memory circuit, and comparing these values with their duplicates to ensure integrity, allowing the system to detect and counteract potential ROP attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the call stack is duplicated in RAM to protect against ROP attacks, then the security against ROP attacks is improved, but the memory consumption increases and the system complexity increases

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the critical security verification function from the full stack duplication approach. Instead of duplicating the entire call stack in RAM, it uses dedicated registers to store and compare only the return address and stack pointer values, reducing complexity while maintaining security protection.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a simplified copy mechanism using registers to duplicate return address and stack pointer values for comparison purposes. This register-based copying replaces the complex RAM-based stack duplication, achieving the same verification function with reduced resource consumption and lower complexity.

Inventive Principle:
Principle #26Copying

2Reliability

If the call stack is duplicated in RAM to protect against ROP attacks, then the security against ROP attacks is improved, but the memory consumption increases

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential security verification data (return address and stack pointer) from the full call stack duplication approach. By using registers to store and compare these critical values, the system achieves ROP attack protection without allocating additional RAM, thus eliminating the memory consumption penalty.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a register-based copying mechanism that duplicates return address and stack pointer values for security verification. This approach replaces the RAM-based duplication, achieving the same verification capability with minimal memory footprint since registers are part of the processor architecture rather than external memory.

Inventive Principle:
Principle #26Copying

3Reliability

If the call stack is duplicated in RAM to protect against ROP attacks, then the security against ROP attacks is improved, but the implementation complexity increases

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent extracts the core security verification function and implements it using simple register operations and comparisons. This approach eliminates the need for complex stack duplication infrastructure, making the system easier to manufacture and implement while maintaining robust ROP attack protection.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses simple register-based copying to duplicate critical stack values for comparison. This register-level copying is inherently simpler to implement than RAM-based duplication, as it leverages the processor's existing register file and requires no additional memory management infrastructure, thereby reducing implementation complexity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12547404B2Storing a duplicated return address and stack pointer in registers to prevent overflow attacks
Publication Date: 2026.02.10 STMICROELECTRONICS INT NV
  • US12547404B2 patent drawing
  • US12547404B2 patent drawing

AI summary

A computer system is provided including a memory configured to store a computer program product, a processor configured to execute said computer program product, and a memory circuit. The computer program product includes at least one instruction to duplicate in the memory circuit a return address defined upon function call, and at least one instruction to compare a value of the return address stored in a call stack at the value of the return address duplicated in the memory circuit and to permit a function return branching only if these two values are identical.