Can an Attacker Cause Both an Overflow and an Underflow in a Single Transaction?

Yes, an attacker can cause both an overflow and an underflow in a single, complex transaction, especially if the smart contract uses unchecked arithmetic and performs multiple sequential operations. For example, a transaction could first cause an underflow in a user's debt calculation (wrapping to a massive positive number) and then use that massive number in a subsequent calculation that causes an overflow (wrapping back to a small number).

This combination of wraps can be used to bypass multiple internal checks.

How Does a Cliff Period Protect a Project from Non-Performing Advisors?
How Can a Developer Intentionally Disable the Overflow Checks in Solidity 0.8.0?
What Is the Performance Impact of Using a Safe Math Library?
How Does the Signed Integer Type Change the Definition of Overflow/underflow?
What Is the Role of the Solidity Compiler in Mitigating Integer Vulnerabilities?
What Percentage of Stale Shares Is Generally Considered Acceptable for a Well-Performing Miner?
How Did the DAO Hack Relate to Integer Overflow?
What Tools Are Used to Detect Integer Overflow and Underflow Vulnerabilities?

Glossar