- iTerm2 รุ่น 3.5.11 ถูกสร้างขึ้นในวันที่ 2 มกราคม 2025 และมีการแก้ไขความปลอดภัยที่สำคัญ ควรอัปเดตโดยทันที
ผู้ใช้ที่ได้รับผลกระทบ
- หากใช้ฟังก์ชันการรวม SSH อาจได้รับผลกระทบในเวอร์ชันต่อไปนี้:
- 3.5.6
- 3.5.7
- 3.5.8
- 3.5.9
- 3.5.10
- เวอร์ชันเบตาทั้งหมดหลังจาก 3.5.6
สาเหตุของปัญหา
- เนื่องจากบั๊กในฟังก์ชันการรวม SSH ทำให้ข้อมูลป้อนเข้าและผลลัพธ์ถูกบันทึกลงไฟล์บนโฮสต์ระยะไกล โดยไฟล์นี้ (/tmp/framer.txt) อาจถูกอ่านโดยผู้ใช้คนอื่นบนโฮสต์ระยะไกลได้
เงื่อนไขที่เกิดปัญหา
- หากใช้หนึ่งในวิธีต่อไปนี้:
- คำสั่ง it2ssh
- ใน Settings > Profiles > General ตั้งค่าเมนูป๊อปอัปคำสั่งเป็น "SSH" และในหน้าต่างการกำหนดค่า SSH เปิดใช้งาน "SSH Integration"
- มีการติดตั้ง Python 3.7 หรือสูงกว่าอยู่ใน path เริ่มต้นของโฮสต์ระยะไกล
แนวทางการแก้ไข
- อัปเกรดเป็นเวอร์ชัน 3.5.11 ทันที
- ลบไฟล์ /tmp/framer.txt ออกจากโฮสต์ที่ได้รับผลกระทบ
การแก้ปัญหา
- เราจะขออภัยข้อผิดพลาดนี้อย่างสุดซึ้ง และดำเนินการเพื่อไม่ให้เกิดเหตุซ้ำอีก
- รหัสที่เขียนไฟล์ล็อกใน SSH Integration ถูกลบออกไป และจะไม่ถูกเผยแพร่อีกต่อไป
- หากมีคำถามสามารถติดต่อได้ที่ gnachman@gmail.com
การตรวจสอบไฟล์
2 ความคิดเห็น
ตอนฉันลองตรวจดูแล้วพบว่าเวอร์ชันของฉันคือ 3.4.3 ครับ ช่วงนี้แทบไม่ค่อยได้ใช้งานเทอร์มินัล เลยไม่ค่อยดูแลตัวเองด้วย ทำให้การอัปเดตก็ไม่ค่อยเกิดขึ้น
ความคิดเห็นจาก Hacker News
รู้สึกสับสนกับความเห็นที่แนะนำให้ไม่ใช้ iTerm2 เพราะปัญหานี้อาจเกิดขึ้นกับโปรเจกต์อื่นได้เช่นกัน และการย้ายไปใช้อะไรอีกตัวหนึ่งไม่ใช่แนวทางป้องกันที่มีประสิทธิภาพ
เหมือนว่าการดีบักด้วย
print()ถูกนำเข้าสู่โปรดักชันไปแล้วข้อบกพร่องของฟีเจอร์การผสาน SSH ทำให้ข้อมูล input และ output ถูกเขียนลงไฟล์บนโฮสต์ระยะไกล
สงสัยในคำแถลงของนักพัฒนาที่บอกว่าจะไม่ทำผิดซ้ำอีกพร้อมกับความเสียใจอย่างลึกซึ้ง
มีเฉพาะในฟีเจอร์ SSH integration เท่านั้น และไม่เกิดขึ้นเมื่อรัน
sshแบบปกติตั้งคำถามว่ามีเหตุผลที่ดีพอที่จะยังคงใช้ iTerm2 ในปี 2025 หรือไม่
รู้สึกว่า iTerm2 ยิ่งซับซ้อนและหนักขึ้น อีกทั้งมีปัญหาด้านความปลอดภัยมากขึ้น
คิดว่าการเปลี่ยน SSH key เป็นวิธีแก้ที่เหมาะสมมากกว่าแค่การลบ
/tmp/framer.txtบนโฮสต์ที่ได้รับผลกระทบตั้งคำถามว่าจำเป็นต้องมี SSH integration ในเทอร์มินัลจริงหรือไม่
สงสัยว่าในข้อบกพร่องของฟีเจอร์ SSH integration ที่ทำให้มีการเขียนไฟล์บนโฮสต์ระยะไกลนี้มันเกิดขึ้นยังไงกันแน่