> For the complete documentation index, see [llms.txt](https://davidjosearaujo.gitbook.io/online-courses/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://davidjosearaujo.gitbook.io/online-courses/blockchain-security/smart-contract-security/general-programming-vulnerabilities.md).

# General programming vulnerabilities

Smart contracts are like any other program, the main difference is that they run on a blockchain network rather than a traditional computer

This means that smart contracts are vulnerable to common programming vulnerabilities:

* Arithmetic
* Right-to-left control characters

More generally, smart contracts are also vulnerable to design flaws
