สแต็คบัฟเฟอร์ล้นเป็นสิ่งที่เกิดขึ้นเมื่อโปรแกรมสร้างรายการลงในหน่วยความจำของคอมพิวเตอร์ที่ยาวกว่าพื้นที่ที่จัดสรร ในบางสถานการณ์สิ่งนี้อาจทำให้ข้อมูลในหน่วยความจำเสียหายทำให้เกิดปัญหาในการใช้งานคอมพิวเตอร์ ในกรณีอื่นแอปพลิเคชั่นที่เป็นอันตรายจะใช้ประโยชน์จากสแตกบัฟเฟอร์มากเกินไปเพื่อควบคุมส่วนอื่น ๆ ของคอมพิวเตอร์
ชื่อจากสแตกบัฟเฟอร์ล้นมาก่อนจากสแต็กซึ่งเป็นรายการที่ใช้งานได้อย่างมีประสิทธิภาพซึ่งข้อมูลถูกจัดระเบียบ: คำที่มาจากการเปรียบเทียบของการซ้อนรายการทางกายภาพ เวอร์ชันหนึ่งของ call stack คือรายการที่โปรแกรมคอมพิวเตอร์ใช้เพื่อติดตามส่วนต่าง ๆ ของโปรแกรมรูทีนย่อยที่ทำงานในช่วงเวลาใดช่วงหนึ่ง เนื่องจาก call stack ทำงานแบบชั่วคราวและจำเป็นต้องเข้าถึงอย่างรวดเร็วจึงอยู่ในหน่วยความจำของคอมพิวเตอร์มากกว่าในที่จัดเก็บข้อมูลถาวรเช่นฮาร์ดไดรฟ์
เนื่องจากระบบปฏิบัติการที่ทันสมัยอนุญาตให้หลาย ๆ โปรแกรมทำงานพร้อมกันจึงไม่จำเป็นต้องจัดระเบียบวิธีการจัดสรรหน่วยความจำรวมถึงการเรียกสแต็ค สิ่งนี้ทำได้อย่างมีประสิทธิภาพโดยการกำหนดบัฟเฟอร์พื้นที่ในหน่วยความจำที่ออกแบบให้ใหญ่พอที่จะรองรับพื้นที่สูงสุดที่บัฟเฟอร์ต้องการ ในกรณีส่วนใหญ่พื้นที่บางส่วนจะไม่ได้ใช้ดังนั้นจึงทำหน้าที่เป็นบัฟเฟอร์ระหว่างข้อมูลจากแอพพลิเคชั่นที่แตกต่างกันออกจากห้องเพื่อรับมือหากจำเป็นต้องใช้พื้นที่เพิ่มเติมในทันที วิธีหนึ่งในการมองเห็นภาพคือการคิดว่าห้องสมุดที่จัดสรรพื้นที่จำนวนหนึ่งให้กับแต่ละสาขาวิชาตรวจสอบให้แน่ใจว่าได้ออกจากห้องพิเศษเพื่อรับมือหากตัวอย่างหนังสือทั้งหมดในหนึ่งเรื่องอยู่ในห้องสมุดที่ ในเวลาเดียวกันมากกว่าที่จะถูกเช็คเอาท์
สแตกบัฟเฟอร์มากเกินไปเกิดขึ้นเมื่อโปรแกรมเขียนข้อมูลสแต็กการโทรไปยังบัฟเฟอร์ในลักษณะที่เกินกว่าพื้นที่ที่จัดสรร สิ่งนี้สามารถเกิดขึ้นได้โดยไม่ตั้งใจซึ่งมักจะผ่านจุดบกพร่องในโปรแกรม ตัวอย่างเช่นหากแอปพลิเคชันได้รับการออกแบบมาเพื่อให้ผู้ใช้พิมพ์หมายเลขโทรศัพท์ แต่ไม่ จำกัด จำนวนอักขระที่สามารถป้อนแฮ็กเกอร์อาจสามารถใช้ฟิลด์ที่ไม่ จำกัด เพื่อทำให้เกิดบัฟเฟอร์ล้นโดยเจตนา . ขึ้นอยู่กับวิธีการทำงานของระบบปฏิบัติการซึ่งอาจทำให้แฮกเกอร์สามารถเข้าถึงแอปพลิเคชันอื่นหรือโดยอ้อมได้
มีวิธีการหลายวิธีในการบรรเทาผลกระทบของการบัฟเฟอร์ล้นสแต็ค สิ่งหนึ่งที่รู้จักกันในชื่อการสุ่มเลย์เอาต์ของพื้นที่ที่อยู่ นี่เป็นการจัดเรียงพื้นที่ที่สำคัญที่สุดของข้อมูลบนคอมพิวเตอร์โดยวิธีการสุ่ม แนวคิดก็คือแม้ว่าแฮ็คเกอร์จะก่อให้เกิดหรือใช้ประโยชน์จากสแต็กบัฟเฟอร์ล้น แต่ก็จะไม่สามารถใช้ประโยชน์จากช่องโหว่นี้ได้


