OpenSSH 10.6 ซึ่งเป็นซอฟต์แวร์โอเพนซอร์สสำหรับใช้งาน SSH 2.0 และ SFTP ได้ถูกปล่อยออกมาแล้ว ปัญหาด้านความปลอดภัยส่วนใหญ่ได้รับการแก้ไขแล้ว โดยปัญหาเหล่านั้นถูกระบุผ่านการวิเคราะห์โค้ดโดยใช้เครื่องมือ AI (ไม่มีการกำหนดหมายเลข CVE):
- ช่องโหว่ใน SFTP อนุญาตให้เขียนไฟล์ไปยังตำแหน่งอื่นนอกไดเร็กทอรีเป้าหมายได้ เมื่อเข้าถึงเซิร์ฟเวอร์ที่ถูกควบคุมโดยผู้โจมตี
- ช่องโหว่สองจุดในการใช้งาน GSSAPI ใน sshd เกิดจากการคงอยู่ของสถานะระหว่างการพยายามตรวจสอบสิทธิ์ ข้อมูลประจำตัว GSSAPI อาจยังคงอยู่หลังจากความพยายามตรวจสอบสิทธิ์ล้มเหลว และถูกนำไปใช้หลังจากความพยายามตรวจสอบสิทธิ์สำเร็จในครั้งถัดไป ปัญหาเหล่านี้จะปรากฏขึ้นเมื่อเปิดใช้งานการตั้งค่า GSSAPIAuthentication
- การรองรับการบีบอัด LZ77 ถูกปิดใช้งานใน sshd และ ssh เนื่องจากความเป็นไปได้ของการโจมตีแบบช่องทางด้านข้าง (side-channel attack) ที่อนุญาตให้กู้คืนเนื้อหาจากเซสชันอื่นเมื่อเชื่อมต่อผ่านการเชื่อมต่อแบบมัลติเพล็กซ์ที่ใช้ร่วมกันกับเหยื่อ โดยใช้ประโยชน์จากข้อเท็จจริงที่ว่าอินพุตที่ผู้โจมตีควบคุมนั้นส่งผลต่อความยาวโดยรวมของข้อความที่เข้ารหัสที่ส่ง (LZ77 จะแทนที่สตริงที่ซ้ำกันด้วยการอ้างอิงในบัฟเฟอร์ที่ใช้ร่วมกันโดยทุกช่องทาง)
- โปรแกรม ssh ห้ามใช้ตัวอักษร '$' และ '\' ในชื่อผู้ใช้ที่ป้อนในบรรทัดคำสั่ง เนื่องจากตัวอักษรเหล่านี้อาจถูกนำไปใช้ในการเรียกใช้โค้ดเมื่อแทนที่ชื่อลงในคำสั่ง ProxyCommand และ Match exec ที่ระบุไว้ในการตั้งค่า
- ใน ssh-keygen ได้แก้ไขข้อผิดพลาดในการจัดการเวลาออมแสง ซึ่งส่งผลให้วันหมดอายุของใบรับรองเลื่อนไป 1 ชั่วโมง
- เพื่อป้องกันการสร้าง zip bomb ใน sshd และ ssh ได้มีการเพิ่มการตรวจสอบการเกินขนาดแพ็กเก็ตสูงสุดเมื่อทำการแตกข้อมูล
- ใน sshd ปัญหาที่เกิดจากการที่คำหลัก "restrict" ในไฟล์ authorized_keys ถูกข้ามไปและไม่ถูกนำไปใช้กับอุโมงค์ (PermitTunnel) ได้รับการแก้ไขแล้ว
- ใน sshd ตัวเลือก "none" จะไม่ถูกตีความผิดพลาดภายในบล็อก Match อีกต่อไป ซึ่งในคำสั่งบางอย่าง เช่น AuthorizedPrincipalsFile จะถูกตีความว่าเป็นชื่อไฟล์แทนที่จะเป็นการบ่งชี้ว่าคำสั่งนั้นถูกปิดใช้งาน
- แก้ไขข้อผิดพลาดใน sshd ที่สิทธิ์ root ไม่ถูกล้างบนแพลตฟอร์มที่ไม่รองรับการส่งผ่านตัวระบุไฟล์และต้องการสิทธิ์ root ในการจัดสรร PTY ปัญหานี้เกิดขึ้นใน QNX 6, SCO OpenServer 5 และเมื่อสร้างด้วยตัวเลือก "--disable-fd-passing"
การเปลี่ยนแปลงที่ไม่เกี่ยวข้องกับช่องโหว่:
- ได้เปิดใช้งานการรองรับอัลกอริธึมการเข้ารหัสแบบไฮบริด ssh-mldsa44-ed25519 ซึ่งทนทานต่อการโจมตีแบบเดาสุ่มบนคอมพิวเตอร์ควอนตัมแล้ว
- ตัวเลือก WarnWeakCrypto ได้ถูกนำมาใช้และเปิดใช้งานโดยค่าเริ่มต้นใน sshd_config เพื่อควบคุมว่าจะแสดงคำเตือนหรือไม่เมื่อมีการสร้างการเชื่อมต่อโดยใช้อัลกอริธึมการตกลงคีย์ที่ไม่ทนต่อควอนตัม
- ssh-keygen และ ssh-add ใช้การตรวจสอบนโยบาย credProtect ในข้อมูลประจำตัวเพื่อให้ตรงตามข้อกำหนดการตรวจสอบ (PIN หรือไบโอเมตริก) ก่อนที่จะเข้าถึงคีย์ที่จัดเก็บไว้บนโทเค็น FIDO
- เพิ่มแฟล็ก "-P" ให้กับคำสั่ง ssh-add เพื่อข้ามการป้อน PIN ที่เป็นตัวเลือกสำหรับโทเค็น FIDO และ PKCS#11
- ใน ssh คำสั่ง ~I จะแสดงข้อมูลเกี่ยวกับเวอร์ชันบนระบบโลคัลและระบบรีโมต
- ใน sftp ได้มีการเพิ่มแฟล็ก '-p' เข้าไปในคำสั่ง mkdir/lmkdir เพื่อสร้างไดเร็กทอรีหากจำเป็น
- โปรแกรม ssh-keygen ได้เพิ่มโหมด "hexdump" เพื่อส่งออกคีย์ในรูปแบบเลขฐานสิบหก (ตัวอย่างเช่น เพื่อนำไปวางในเอกสาร)
- ใน ssh และ sshd คำสั่ง ChannelTimeout ช่วยให้คุณสามารถระบุค่าหมดเวลาได้ด้วยความแม่นยำระดับทศวินาที
- เพิ่มตัวเลือก AgentSocketPath ใน sshd เพื่อระบุพาธไปยัง $SSH_AUTH_SOCK เมื่อส่งต่อเอเจนต์ (เช่น user:.ssh/agent สำหรับไดเร็กทอรีย่อยใน $HOME และ shared:/tmp สำหรับไดเร็กทอรีที่แชร์)
- ssh-agent มีแฟล็ก "-A" สำหรับระบุไดเร็กทอรีที่มีซ็อกเก็ตเอเจนต์ ซึ่งอนุญาตให้ระบุคำนำหน้า "user:" และ "shared:" ได้เช่นเดียวกับตัวเลือก AgentSocketPath
- ใน sshd การตรวจสอบคีย์สาธารณะแยกออกจากการพยายามยืนยันตัวตนแล้ว มีการเพิ่มตัวเลือก "PubkeyOptions max-pk-ok:nnnn" เพื่อกำหนดจำนวนครั้งในการตรวจสอบคีย์สาธารณะ (ค่าเริ่มต้นคือ 6) หลังจากนั้นการเชื่อมต่อจะถูกตัดตามขีดจำกัด MaxAuthTries
- ใน ssh และ sshd ตัวเลือก TCPKeepAlive รองรับค่า "all" แล้ว ซึ่งช่วยให้สามารถส่งแพ็กเก็ต keepalive ได้ไม่เพียงแต่สำหรับการเชื่อมต่อหลักเท่านั้น แต่ยังรวมถึงการเชื่อมต่อที่ส่งต่อผ่านการเชื่อมต่อหลักนั้นด้วย
ที่มา: opennet.ru
