4.11. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버

nodejs:16 모듈 스트림이 완전히 지원됨

이전에 기술 프리뷰로 사용 가능한 nodejs:16 모듈 스트림은 RHSA-2021:5171 권고 릴리스로 완전 지원됩니다. nodejs:16 모듈 스트림은 이제 LTS(Long Term Support) 버전인 Node.js 16.13.1 을 제공합니다.

RHEL 8.5에 포함된 Node.js 16 은 RHEL 8.3 이후 사용할 수 있는 Node.js 14 에 비해 여러 가지 새로운 기능 및 버그 및 보안 수정 사항을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • V8 엔진이 버전 9.4로 업그레이드되었습니다.
  • npm 패키지 관리자가 버전 8.1.2로 업그레이드되었습니다.
  • 새로운 타이머 Promises API는 Promise 오브젝트를 반환하는 다른 타이머 기능 세트를 제공합니다.
  • Node.js 에서 실험적 웹 스트림 API를 제공합니다.
  • Node.js 에는 이제 수동으로 설치할 필요 없이 제공된 프로젝트에 구성된 패키지 관리자를 사용할 수 있는 실험적 도구인 Corepack 이 포함되어 있습니다.
  • Node.js 에서는 ESM 로더 후크를 통합하는 실험적 ECMAScript 모듈(ESM) 로더 후크 API를 제공합니다.

nodejs:16 모듈 스트림을 설치하려면 다음을 사용합니다.

# yum module install nodejs:16

nodejs:14 스트림에서 업그레이드하려면 Switching이후 스트림으로 참조하십시오.

(BZ#1953991, BZ#2027610)

새 모듈 스트림: ruby:3.0

RHEL 8.5에는 새로운 ruby:3.0 모듈 스트림에 Ruby 3.0.2 가 도입되었습니다. 이 버전은 RHEL 8.3과 함께 배포되는 Ruby 2.7 에 비해 다양한 성능 개선, 버그 및 보안 수정, 새 기능을 제공합니다.

주요 개선 사항은 다음과 같습니다.

  • 동시성 및 병렬 처리 기능:

    • 스레드 보안 병렬 실행을 제공하는 행위자 모델 추상화인 Ractor 가 실험적 기능으로 제공됩니다.
    • 광 스케줄러 는 실험적 기능으로 도입되었습니다. Fiber Scheduler 는 기존 코드를 변경하지 않고도 경량 동시성을 지원하는 차단 작업을 가로챕니다.
  • 정적 분석 기능:

    • RBS 언어는 Ruby 프로그램의 구조를 설명하는 도입되었습니다. RBS 로 작성된 구문 분석 유형 정의에 rbs gem이 추가되었습니다.
    • Ruby 코드의 유형 분석 툴인 TypeProf 유틸리티가 도입되었습니다.
  • 사례/인식과의 패턴 일치는 더 이상 실험적이지 않습니다.
  • 실험적 기능인 한 줄 패턴 일치가 다시 설계되었습니다.
  • 검색 패턴은 실험적 기능으로 추가되었습니다.

다음과 같은 성능 개선이 구현되었습니다.

  • 긴 코드를 IRB(상사 Ruby Shell) 에 붙여넣는 속도가 훨씬 빨라졌습니다.
  • 측정 명령이 시간 측정을 위해 IRB 에 추가되었습니다.

기타 주요 변경 사항은 다음과 같습니다.

  • 키워드 인수는 다른 인수와 분리되었습니다.
  • 사용자가 설치한 gems의 기본 디렉터리는 $HOME/.local/share/gem/ 디렉터리가 이미 있는 경우를 제외하고 이제 $HOME/.local/share/gem/ 입니다.

ruby:3.0 모듈 스트림을 설치하려면 다음을 사용합니다.

# yum module install ruby:3.0

이전 ruby 모듈 스트림에서 업그레이드하려면 이후 스트림으로 전환을 참조하십시오.

(BZ#1938942)

Python urllib 구문 분석 함수의 기본 구분 기호 변경

Python urllib 라이브러리에서 CVE-2021-23336에 대한 웹 캐시를 완화하려면 urllib .parse.parse_qsl 및 urllib.parse.parse_qs 함수의 기본 구분 기호가 앰퍼샌드(&) 및 세미콜론(;)에서 앰퍼샌드(;)로만 변경됩니다.

이러한 변경 사항은 RHEL 8.4 릴리스와 함께 Python 3.6에서 구현되었으며 이제 Python 3.8 및 Python 2.7으로 백포트되고 있습니다.

기본 구분 기호의 변경은 이전 버전과 호환되지 않을 수 있으므로 Red Hat에서는 기본 구분 기호가 변경된 Python 패키지에서 동작을 구성하는 방법을 제공합니다. 또한 영향을 받는 urllib 구문 분석 기능은 고객의 애플리케이션이 변경의 영향을 받았음을 감지하면 경고 메시지가 표시됩니다.

자세한 내용은 Python urllib 라이브러리의 Web Cache Poisoning(CVE-2021-23336) 지식 베이스 문서를 참조하십시오.

Python 3.9는 영향을 받지 않으며 Python 코드에서 urllib.parse.parse _qsl 및 urllib.parse.parse_q s 함수를 호출할 때 구분 기호 매개 변수를 전달하여 변경할 수 있는 새로운 기본 구분 기호(&)가 이미 포함되어 있습니다.

(BZ#1935686, BZ#1931555, BZ#1969517)

Python ipaddress 모듈에서 더 이상 IPv4 주소에서 제로를 허용하지 않음

CVE-2021-29921 을 완화하기 위해 Python ipaddress 모듈에서 AddressValueError가 있는 선행 0이 있는 IPv4 주소를 거부합니다. 선행 0은 허용되지 않습니다 오류.

이러한 변경은 python38 및 python 39 모듈에서 도입되었습니다. RHEL에 배포된 이전 Python 버전은 CVE-2021-29921의 영향을 받지 않습니다.

이전 동작을 사용하는 고객은 IPv4 주소 입력을 사전 처리하여 선행 제로를 제거할 수 있습니다. 예를 들면 다음과 같습니다.

>>> def reformat_ip(address): return '.'.join(part.lstrip('0') if part != '0' else part for part in address.split('.'))
>>> reformat_ip('0127.0.0.1')
'127.0.0.1'

가독성을 위해 명시적 루프로 선행 0을 제거하려면 다음을 사용합니다.

def reformat_ip(address):
    parts = []
    for part in address.split('.'):
        if part != "0":
            part = part.lstrip('0')
        parts.append(part)
    return '.'.join(parts)

(BZ#1986007, BZ#1970504, BZ#1970505)

php:7.4 모듈 스트림이 버전 7.4.19로 업데이트

php:7.4 모듈 스트림에서 제공하는 PHP 스크립팅 언어가 버전 7.4.6에서 버전 7.4.19로 업그레이드되었습니다. 이번 업데이트에서는 여러 보안 및 버그 수정을 제공합니다.

(BZ#1944110)

새 패키지: pg_repack

pg_repack 패키지가 postgresql:12 및 postgresql :13 모듈 스트림에 추가되었습니다. pg_repack 패키지는 테이블 및 인덱스에서 혼합을 제거하고 선택적으로 클러스터형 인덱스의 물리적 순서를 복원할 수 있는 PostgreSQL 확장 기능을 제공합니다.

(BZ#1967193, BZ#1935889)

새 모듈 스트림: nginx:1.20

nginx 1.20 웹 및 프록시 서버를 이제 nginx:1.20 모듈 스트림으로 사용할 수 있습니다. 이번 업데이트에서는 이전에 출시된 버전 1.18에 비해 많은 버그 수정, 보안 수정, 새 기능 및 개선사항을 제공합니다.

새로운 기능 :

  • Nginx 는 OCSP(Online Certificate Status Protocol)를 사용하여 클라이언트 SSL 인증서 유효성 검사를 지원합니다.
  • Nginx 는 최소 사용 가능한 공간에 따라 캐시 지우기를 지원합니다. 이 지원은 proxy_ cache _path 지시문의 min_ free 매개 변수로 구현됩니다.
  • 변수 값을 설정할 수 있는 new ngx_stream_set_module 모듈이 추가되었습니다.

향상된 지시문 :

  • ssl_conf_command 및 ssl_reject_ handshake 와 같은 새로운 지시문을 여러 개 사용할 수 있습니다.
  • proxy_cookie_flags 지시문은 이제 변수를 지원합니다.

HTTP/2 지원 개선:

  • Then gx_http_v2 모듈에 이제 lingering _close, lingering _time, lingering_timeout 지시문이 포함됩니다.
  • HTTP/2의 연결 처리가 HTTP/1.x에 맞게 조정되었습니다. Nginx 1.20 에서 http2_recv _timeout, http2_idle _timeouthttp2_max_ requests 지시문이 제거된 대신 keepalive _timeout 및 keepalive_requests 지시문을 사용합니다.

nginx:1.20 스트림을 설치하려면 다음을 사용합니다.

# yum module install nginx:1.20

nginx:1.20 스트림에서 업그레이드하려면 이후 스트림으로 전환을 참조하십시오.

(BZ#1945671)

squid:4 모듈 스트림이 버전 4.15로 다시 기반합니다.

squid:4 모듈 스트림에서 사용할 수 있는 Squid 프록시 서버가 버전 4.11에서 버전 4.15로 업그레이드되었습니다. 이번 업데이트에서는 다양한 버그 및 보안 수정을 제공합니다.

(BZ#1964384)

쿼터 에서 HPE XFS 지원

할당량 유틸리티에서 이제 HPE XFS 파일 시스템을 지원합니다. 결과적으로 HPE XFS 사용자는 할당량 유틸리티를 통해 사용자 및 그룹 디스크 사용량을 모니터링하고 관리할 수 있습니다.

(BZ#1945408)

mutt 는 2.0.7 버전으로 업데이트

Mutt 이메일 클라이언트는 버전 2.0.7로 업데이트되어 여러 개선 사항 및 버그 수정을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • mutt 는 이제 XOAUTH2 메커니즘을 사용하여 OAuth 2.0 인증 프로토콜을 지원합니다. mutt는 이제 IMAP, POP 및 SMTP 프로토콜에 대한 OAUTHBEARER 인증 메커니즘도 지원합니다. OAuth 기반 기능은 외부 스크립트를 통해 제공됩니다. 따라서 인증 토큰을 사용하여 Mutt 와 같은 다양한 클라우드 이메일 프로바이더와 연결할 수 있습니다. OAuth 지원으로 Mutt 를 설정하는 방법에 대한 자세한 내용은 OAuth2 인증을 사용하여 Mutt를 설정하는 방법을 참조하십시오.
  • mutt 는 도메인 리터럴 이메일 주소에 대한 지원을 추가합니다(예: user@[IPv6:fcXX:…​].
  • 새로운 $ssl_use_tlsv1_3 구성 변수는 이메일 서버에서 지원하는 경우 TLS 1.3 연결을 허용합니다. 이 변수는 기본적으로 활성화되어 있습니다.
  • 새로운 $imap_deflate 변수는 COMPRESS=DEFLATE 압축을 지원합니다. 변수는 기본적으로 비활성화되어 있습니다.
  • $ssl_starttls 변수는 더 이상 암호화되지 않은 IMAP PREAUTH 연결을 중단하는 작업을 제어하지 않습니다. STARTTLS 프로세스에 의존하는 경우 $ssl_force_tls 변수를 대신 사용합니다.

Mutt 버전을 업데이트한 후에도 ssl_force_tls 구성 변수는 여전히 기본값이 no 로 설정되어 RHEL 사용자가 기존 환경에서 문제가 발생하지 않도록 합니다. Mutt 의 업스트림 버전에서ssl_force_tls 는 기본적으로 활성화되어 있습니다.

(BZ#1912614, BZ#1890084)