운영 체제를 업그레이드하지 않고 손상된 단일 패키지를 업그레이드하는 방법(Ubuntu)

운영 체제를 업그레이드하지 않고 손상된 단일 패키지를 업그레이드하는 방법(Ubuntu)

Ubuntu 16.04 서버가 있고 크론 중 하나에 16.04에서 "수정 불가능"으로 나열되었지만 Ubuntu 20.04에서 수정된 심각한 취약점이 있습니다. 패치를 다운로드하고 싶지만 사용하면 sudo apt upgrade cron최신 버전이라고 표시됩니다(이 OS의 최신 버전이므로 이는 아마도 의미가 있을 것입니다). 이는 프로덕션 서버이며 현재 운영 체제를 완전히 업그레이드할 수 있는 범위가 없습니다.

서버 전체를 망가뜨리지 않고 업그레이드할 수 있는 방법이 있나요?

답변1

귀하의 버전이 관심 있는 업데이트를 제공하지 않는 경우 일반적으로 "최상의" 옵션은 다음과 같습니다.소스 코드 패키지 다운로드(구체적으로,이것.dsc및 관련 파일) 로컬에서 패키지를 다시 빌드합니다. (바라보다이 답변패키지를 다시 빌드하는 방법을 자세히 설명하는 간단한 예입니다. )

하지만여기에는 여러 가지 위험이 따르며, 그 중 두 가지 주요 위험은 다음과 같습니다.

  • 현재 사용 중인 버전으로 인해 패키지에 적용된 다른 변경 사항이 해당 기능에 영향을 미칠 수 있습니다. 예를 들어 현재 버전은 실제로 사용 중인 버전이 아닌 대상 버전과 유사한 작업 환경을 채택할 수 있습니다.
  • 필요한 경우 더 이상 패키지에 대한 자동 업데이트를 받을 수 없습니다. 사실상 패키지에 대한 지원 제공 부담을 지게 됩니다.

이 특별한 예에서는CVE-2017-9525, 이 취약점의 범위는 제한되어 있습니다. 자세한 내용은 다음 참고 사항을 참조하세요.

나는 실제로 믿는다악용하다이 오류가 발생하면 cron 패키지를 업데이트해야 합니다. cron이 업데이트되지 않는 한 취약한 코드는 실행되지 않습니다. 따라서 cron에서 두 번째 버그를 발견하면 동시에 경쟁 조건을 수정해야 하지만 cron 업데이트를 푸시하지 않는 한 취약한 코드는 실행되지 않습니다. 패치는 단순히 경쟁 조건에 대한 시간 창을 좁힙니다.

이 취약점은 대부분의 경우 패키지가 업그레이드될 때만 발생하는 패키지 설치 후 스크립트를 실행할 때만 문제가 됩니다. (그것수동 시행이 가능 dpkg-reconfigure하지만 자동으로 시행되지는 않습니다. ) 따라서 가장 안전한 선택은 패키지를 그대로 두는 것 같습니다.

관련 정보