메뉴
HN
Hacker News 32일 전

AI, 최대 오픈소스 의료 기록 소프트웨어서 38개 취약점 발견

IMP
9/10
핵심 요약

AI 보안 분석 엔진이 전 세계 10만 개 이상의 의료 기관에서 사용 중인 오픈소스 전자 건강 기록 플랫폼인 OpenEMR에서 38개의 심각한 보안 취약점(CVE)을 단 분기 만에 발견했습니다. 가장 심각한 문제들은 SQL 인젝션 공격을 통해 환자의 민감한 데이터 유출 및 서버 원격 제어까지 가능하게 만드는 수준이었습니다. 이는 공격에 악용되기 전 AI를 통한 선제적인 보안 진단이 의료 분야 등 핵심 인프라를 지키는 데 매우 효과적임을 입증한 사례입니다.

번역된 본문

AI, 10만 개 의료 기관이 사용하는 헬스케어 소프트웨어에서 38개의 CVE 발견

작성자: Stanislav Fort 게시일: 2026년 4월 28일

헬스케어 산업의 디지털화는 보안 기술의 발전 속도보다 더 빠르게 진행되고 있습니다. AI 보조 진단, 원격 의료, 자동 청구 시스템은 전례 없는 속도로 의료 서비스에 대한 접근성을 확대하고 있지만, 이러한 시스템을 보호하는 보안 관행은 이 속도를 따라가지 못하고 있습니다. 동시에 공격자들 역시 취약점을 그 어느 때보다 빠르게 찾아내기 위해 AI를 활용하고 있습니다. 그 결과, 헬스케어 소프트웨어의 기능과 이를 방어하는 수준 사이의 격차는 점점 벌어지고 있습니다.

'OpenEMR'은 바로 이 격차 한가운데에 서 있습니다. 이 플랫폼은 세계에서 가장 널리 채택된 오픈소스 전자 건강 기록(EHR) 플랫폼 중 하나로, 34개 언어를 지원하며 2억 명 이상의 환자를 진료하는 10만 개 이상의 의료 기관에서 사용되고 있습니다. 2026년 2월에 릴리스된 OpenEMR 8.0은 미국 연방 보건 IT 인증 프로그램에 따라 전체 개인정보 보호 및 보안 기준(§ 170.315(d)(1) ~ (d)(13))을 충족하여 ONC 인증을 받았습니다. 이러한 넓은 사용 범위 때문에 이 시스템을 보호하는 것은 필수적입니다.

바로 이러한 이유로 우리는 OpenEMR을 오픈소스 파트너십 보안 작업의 핵심 대상으로 선택했습니다. 우리의 목표는 과거 OpenSSL에서 12개의 제로데이 취약점을 밝혀낸 것과 동일한 자율 분석 엔진을 수백만 환자가 매일 의존하는 코드 베이스에 적용하여 핵심 인프라를 강화하는 것입니다. OpenEMR 유지보수 팀은 우리와 긴밀하게 협력했으며, 발견된 사항에 대해 매우 빠르고 전문적으로 대응했습니다. 다음은 우리가 발견한 내용, 문제가 해결된 방식, 그리고 이 경험이 헬스케어 애플리케이션 보안의 현재 상태에 대해 시사하는 바에 대한 요약입니다.

[발견 사항 요약] 2026년 1분기 동안, AISLE의 연구원들인 Stanislav Fort, Petr Simecek, Petr Simecek는 AISLE AI 분석기를 OpenEMR 코드 베이스에 적용하여 38개의 CVE(공통 취약점 및 노출)를 발견했습니다. 이는 해당 기간 동안 GitHub에 게시된 전체 OpenEMR 보안 권고의 절반 이상을 차지하는 수치입니다. 비교를 위해 언급하자면, OpenEMR에 대해 가장 주목받았던 이전의 독립적인 보안 감사는 '2018 Project Insecurity' 보고서입니다. 이는 전담 인간 연구팀의 장기적인 노력 끝에 23개의 취약점을 공개하며 국제적인 언론 보도를 이끌어냈던 사례입니다. 그러나 AISLE의 분석기는 단 한 분기 만에 38개의 취약점을 찾아냈습니다.

이러한 취약점들은 OpenEMR 배포 환경을 겨냥한 광범위한 공격을 가능하게 할 수 있었습니다. 가장 심각한 경우에는 SQL 인젝션(SQL Injection) 취약점이 일정 수준의 데이터베이스 권한과 결합되어 데이터베이스 전체가 탈취되고, 대규모 개인 건강 정보(PHI) 유출이 발생하며, 서버에서 원격 코드 실행(RCE)까지 가능했습니다.

[주요 발견 사항] 다음의 각 취약점은 민감한 환자 데이터에 접근하거나 이를 조작(변조)하는 데 악용될 수 있었습니다.

CVE-2026-24908: 환자 REST API 정렬 파라미터에서의 SQL 인젝션 CVSS 점수 10.0(최대 위험도)을 기록한 이번 발견은 OpenEMR의 환자 REST API에서 발견되었습니다. 이 API에서 _sort 쿼리 파라미터는 클라이언트가 반환된 결과의 정렬 순서를 선택할 수 있게 해주는 일반적인 REST 패턴입니다. 그러나 _sort에 전달된 값은 아무런 검증이나 허용된 정렬 필드의 화이트리스트 처리, 식별자 이스케이프 처리 없이 SQL ORDER BY 절에 직접 문자열로 연결되었습니다. 단 하나의 누락된 호출 조치로 인해 OAuth2 베어러 토큰을 가진 인증된 클라이언트라면 누구든지 이 결함을 세 가지 방식으로 악용할 수 있었습니다. 첫째, UNION SELECT 페이로드를 사용하여 자격 증명 해시나 임의의 테이블 내용을 추출할 수 있습니다. 둘째, SLEEP() 함수를 통한 시간 기반 블라인드 인젝션으로 취약점 악용 가능성을 확인할 수 있습니다. 셋째, 데이터베이스 사용자에게 FILE 권한이 있는 경우 임의의 파일 읽기/쓰기 및 원격 코드 실행(RCE)으로 권한을 상승시킬 수 있습니다.

CVE-2026-23627: 예방 접종 검색/보고서에서의 SQL 인젝션 예방 접종(Immunization) 모듈의 검색 및 보고서 엔드포인트에도 REST API가 아닌 웹 UI 내에 유사한 결함이 있었습니다. patient_id 폼 파라미터는 쉼표로 분할된 뒤, 각 조각이 파라미터화나 이스케이프 처리 없이 SQL WHERE 절에 직접 꿰매어져 들어갔습니다. 인젝션 지점이 ORDER BY가 아닌 WHERE 절에 있었기 때문에 악용은 훨씬 더 간단했습니다. 단일 요청만으로 UNION SELECT를 통해 모든 테이블의 데이터를 추출할 수 있었고, 단순한 SLEEP() 호출만으로도 시간 기반 블라인드 인젝션이 작동했습니다. 만약 데이터베이스 사용자에게 충분한 권한이 있었다면 이 경로를 통해서도 시스템 전체가 위험에 처할 수 있었습니다.

원문 보기
원문 보기 (영어)
AISLE Discovers 38 CVEs in Healthcare Software Used by 100,000 Medical Providers Author Stanislav Fort Date Published April 28, 2026 Healthcare is digitizing faster than it is being secured. AI-assisted diagnostics, telemedicine, and automated billing are expanding access to care at unprecedented speed, but the security practices protecting these systems have not kept up. At the same time, attackers are increasingly using AI to find vulnerabilities faster than ever. The result is a widening gap between what healthcare software can do and how well it is defended. OpenEMR sits squarely in that gap. It is one of the most widely adopted open-source electronic health record platforms in the world, used by over 100,000 medical providers serving more than 200 million patients across 34 languages. OpenEMR 8.0, released in February 2026, is ONC-certified under the U.S. federal Health IT certification program, including the full set of Privacy and Security criteria (§ 170.315(d)(1) through (d)(13)). Such reach makes protecting it essential. That is why we chose OpenEMR as a focus of our open-source partnership security work. Our goal is to strengthen critical infrastructure by applying the same autonomous analysis engine that uncovered twelve zero-days in OpenSSL to a codebase that millions of patients depend on daily. The OpenEMR maintainers collaborated closely with us and responded to findings with speed and professionalism. What follows is a summary of what we found, how the issues were fixed, and what this experience reveals about the state of healthcare application security. The Findings at a Glance During Q1 2026, AISLE researchers Stanislav Fort, Petr Simecek, and Pavel Kohout applied the AISLE AI analyzer to the OpenEMR codebase and discovered 38 CVEs , accounting for more than half of all OpenEMR security advisories published on GitHub during this period. For comparison, the most prominent prior independent security audit of OpenEMR was the 2018 Project Insecurity report , which generated international press coverage and disclosed 23 vulnerabilities after an extended research effort by a dedicated human team. AISLE's analyzer found 38 in just one quarter. These vulnerabilities could have enabled a broad range of attacks against OpenEMR deployments. In the most severe cases, SQL injection vulnerabilities combined with modest database privileges could have led to full database compromise, PHI exfiltration at scale, and remote code execution on the server. Notable Findings Each of these vulnerabilities could be exploited to access or rewrite sensitive patient data: CVE-2026-24908 : SQL Injection in Patient REST API Sort Parameter The second CVSS 10.0 finding lived in OpenEMR's Patient REST API, where the _sort query parameter lets clients choose the ordering for returned results, a common REST pattern. The values passed to _sort were concatenated directly into SQL ORDER BY clauses with no validation, no whitelisting of allowed sort fields, and no identifier escaping. A single missed call meant any authenticated client with an OAuth2 bearer token could exploit the flaw three ways: UNION SELECT payloads to extract credential hashes or arbitrary table contents; time-based blind injection via SLEEP() to confirm exploitability; and if the database user held FILE privileges, escalation to arbitrary file read/write and remote code execution. CVE-2026-23627 : SQL Injection in Immunization Search/Report The Immunization module's search and report endpoints had a similar flaw, but in the web UI rather than the REST API. The patient_id form parameter was split on commas and each piece was stitched directly into SQL WHERE clauses without parameterization or escaping. Because the injection point was in a WHERE clause rather than an ORDER BY , exploitation was more straightforward. A UNION SELECT could extract data from any table in a single request, and time-based blind injection worked with a simple SLEEP() call. If the database user held FILE privileges, the attacker could also read server files or write a web shell, escalating to remote code execution. CVE-2026-24487 : FHIR Patient Compartment Bypass in CareTeam The FHIR CareTeam endpoint returned care team data for every patient in the system, even when the request carried a patient-scoped OAuth2 token that should have restricted results to a single patient. The root cause was architectural: OpenEMR's FHIR layer uses a PHP interface (IPatientCompartmentResourceService) as a marker to decide which services receive patient-scoping filters. The FhirCareTeamService class never declared that interface, so the framework's instanceof check failed silently and no patient filter was injected. The underlying service already supported filtering by patient UUID; the code was simply never invoked. Autonomous Issue Fixes For each of the 38 CVEs, AISLE generated a repository-native fix proposal that reused OpenEMR's own abstractions, authorization patterns, and sanitization helpers. For the critical-severity CVE-2026-23627 , AISLE independently produced the patch. In other cases, OpenEMR maintainers adapted AISLE's proposed remediation into the final fix. This significantly reduced the time to remediation and made it easier for OpenEMR's dedicated maintainers to secure the codebase. A Partnership for Patient Safety Our engagement with OpenEMR began in mid-December 2025, when the AISLE analyzer first started inspecting the codebase. We reported the initial batch of findings in mid-January 2026, and from the very first disclosures, the OpenEMR Foundation worked alongside us on remediation, reviewing findings quickly, iterating on fixes, and engaging with the technical detail of every issue. The bulk of the AISLE-reported fixes shipped in OpenEMR 8.0.0 on February 11, 2026, roughly four weeks after the first disclosures, with the remainder landing across three subsequent patch releases throughout March. In early April 2026, we formalized the partnership by integrating AISLE PRO , our AI-powered commit analyzer, into OpenEMR's code review workflow. Together, we can now detect many vulnerabilities at the code review stage, before they enter production, securing new code even as the team works through the existing backlog. "For a project like OpenEMR, where the stakes are patient safety and health data privacy, we couldn't be more excited about our partnership with AISLE. Their autonomous analyzer uncovered dozens of vulnerabilities in our codebase. Now, with Aisle's analyzer running at the code review stage, we're catching and fixing vulnerabilities before they ever reach production." — Brady Miller , MD, Executive Director of the OpenEMR Foundation From Disclosure to Prevention with AISLE AI-powered attacks increasingly target healthcare institutions to steal personally identifiable information, extort payments, and disrupt the delivery of life-saving care. Defenders need matching coverage. The OpenEMR engagement is what that looks like in practice: an autonomous analyzer finding real vulnerabilities in critical software, fixes landing in production within weeks, and the same system moving upstream to catch new vulnerabilities at code review, before they ever reach a patient record. If your organization depends on software to deliver care, schedule a demo to see what AISLE can do. Full Advisory List Missing or incorrect authorization The single largest category. Many endpoints accepted user-supplied record identifiers (patient IDs, note IDs, form IDs) and operated on them without verifying that the caller was permitted to access the referenced record. In access-control terminology, this is known as an Insecure Direct Object Reference (IDOR). A related subset involved endpoints that omitted Access Control List (ACL) checks entirely, allowing any authenticated user to reach functionality intended for administrators or specific roles. At one extreme, a single endpoint bypa