coordinated-disclosure · data-exposure · elasticsearch · aviation · apis · pii · default-credentials · vietnam

2.2 亿旅客记录:一个与越南相关的乘客数据库被公开暴露

Kinryū Labs 发现了一个数据库,其中存有九年间所有出入越南人员的预报旅客信息:210,318,069 条乘客记录和 10,465,631 条机组记录,每条都将姓名、出生日期和护照号码与完整行程绑定,细致到行李条。它使用未更改的默认登录凭据即可应答。其覆盖范围从 Aeroflot 和 Belavia 的机组,一直到金兰湾的白俄罗斯游客。经协同披露后,访问入口已于 2026 年 6 月关闭。

作者 Davis Zheng·

CWE
CWE-1392
Product
Elasticsearch 8.3.3 (APIS/PNR cluster)

TLP:CLEAR。Kinryū Labs 于 2026 年 6 月 3 日在一项针对暴露数据库的研究中发现此次暴露,并于当日上报;访问入口在数日内关闭。本次枚举为只读操作:仅记录了聚合计数、数据时间范围、字段结构以及少量截图。本报告中的每一张截图都已将可识别个人身份的字段(姓名、护照号码和出生日期)涂黑处理。除披露过程中通知的相关主管部门外,没有任何乘客或机组个人记录被留存、公开或共享。源主机地址、端口和凭据均不予公开。该系统的运营方未能确认。

摘要

  • 210M乘客记录
  • 10.4M机组记录
  • 9 年航班数据,2017 年至 2026 年
  • 1,008家航空公司出现在数据中

2026 年 6 月 3 日,在对暴露于互联网上的数据库进行大范围普查时,我们发现了一个名为 pax-info 的 Elasticsearch 集群。Elasticsearch 是一款用于检索海量记录的数据库引擎。这一个并非对整个互联网完全敞开:直接向其发送的请求会被拒绝。但通过一个云端跳板可以访问到它,且一旦连通,它就接受 Elasticsearch 的默认登录凭据,即运营方从未更改过的出厂用户名和密码。这算不上真正的防护。其背后是 220,783,700 条旅行记录,时间跨度从 2017 年 1 月 7 日到 2026 年 4 月 30 日。

这类普查通常只能找到些乏味的东西:开发者遗留的测试数据、某家店铺的商品目录、被清空后只剩勒索信的数据库。这个集群并不乏味。它保存着长达九年的边境管控数据档案,而我们发现它时,最新的记录大约只有五周历史,说明系统仍在持续写入。它是活的。

这些数据是预报旅客信息。国际航班起飞前,航空公司会向目的地国家发送一份机上人员清单,供边境部门对所有在机人员进行预先筛查。字段由 ICAO 标准化,即负责制定民航规则的联合国机构。直白地说,这属于一个国家掌握的关于普通旅客的最敏感数据之一:对每个人而言,是与护照号码绑定的真实姓名和出生日期,以及其去过何地、何时前往的完整记录。

关键研判
  • 九年的档案,且仍在运行。210,318,069 条乘客记录和 10,465,631 条机组记录,最新的记录约五周前产生。这是一套运行中系统的在用档案,而不是转储后被遗忘的陈旧副本。高置信度,直接实测。
  • 每条记录都是一份身份加一份行动轨迹。完整姓名、出生日期、性别和国籍,与护照号码、有效期及签发国绑定,之后是航班信息:航班号、日期、机场、座位和行李条。这些字段合在一起,既是冒名顶替和证件伪造的原始素材,也是一份关于某个具名个人在特定日期身处何地的日志。高置信度。
  • 覆盖范围是全球性的,且颗粒度极细。承运人包括俄罗斯和白俄罗斯的国家航空公司 Aeroflot 与 Belavia;乘客涵盖荷兰、中国、白俄罗斯、韩国、日本等多国籍;细节则细到单件行李的行李条编号。其覆盖范围延伸至中转和过境旅客,而不仅限于行程起点或终点在越南的人。高置信度。
  • 不存在入侵,也不存在漏洞利用。该集群接受了从未更改过的 Elasticsearch 出厂默认凭据,而它自带的 Web 界面还提供了一键 JSON 导出。默认登录凭据是公开记载的,也是任何扫描器最先尝试的东西。整个过程不涉及任何软件漏洞。高置信度。
  • 数据与越南相关,但运营方未获确认。它托管在河内的越南国有电信基础设施上,按 ICAO 数据源结构组织,且以越南两家最大的承运人为主。具体由哪个机构运营,我们无法确定,我们通知的越南主管部门也未作回应。归属方面为中等置信度;托管环境和数据结构是直接观察所得,运营方则不是。
Elasticvue 集群概览,显示集群 pax-info、节点 node-32、Elasticsearch 版本 8.3.3、29 个索引、约 2.2079 亿个文档,磁盘占用 107 GB。
集群概览,通过云端跳板使用未更改的默认登录凭据读取。pax-info 集群包含 29 个索引、约 2.2079 亿个文档,共 107 GB。乘客与机组两个索引占其中的 220,783,700 个文档;其余是体量很小的参照索引和测试索引。

每条记录包含什么

每条记录将完整姓名、出生日期、性别和国籍与护照或旅行证件号码、证件有效期及签发国绑定,随后附上行程:航班号、日期、始发、中转和目的地机场、座位以及行李条编号。姓名、出生日期和护照号码三者结合,足以让人冒充某位旅客或伪造旅行证件,而行程则显示了某位具名旅客在特定日期身处何地。

单条记录的结构,以下为我们记录时隐去全部身份值后的形态:

flightDate: 2026-04-30  flightNumber: VN0402  fromAirportCode: HAN (河内)  toAirportCode: ICN (首尔仁川)  guestNameOriginal: [已隐去]  birthday: [已隐去]  nationalityCode: [已隐去]  documentNumberOriginal: [已隐去]

一张乘客记录表格,姓名和护照号码两列被涂黑并标注为已隐去。航空公司、国籍、目的地和航班日期列仍可见,显示的目的地包括首尔、悉尼和青岛。
集群中呈现的乘客记录。我们涂黑了可识别个人身份的两列:完整姓名和护照号码。其余内容保持原样,显示国籍与目的地:首尔、悉尼、青岛、昆明,国际航线和护照签发国的分布远远超出越南。

数据库里都有谁

对越南乘客系统的常见理解是,它保存的是越南旅客的数据。它保存的远不止于此。记录中的国籍遍及全球:荷兰、中国、白俄罗斯、韩国、日本、法国、德国、加拿大、马来西亚,航空公司多达 1,008 家。九年间,凡是乘坐几乎任意承运人、飞过途经越南机场航线的人,都可能在其中。

其中两家承运人格外醒目。机组记录中包含俄罗斯国家航空公司 Aeroflot 与白俄罗斯国家航空公司 Belavia 的排班名册,两者均处于西方制裁之下。其机组人员的姓名、出生日期和护照号码,与其他所有人的数据一同存放在这个开放的库中。乘客一侧则是与之对应的民用流量:白俄罗斯籍旅客预订前往金兰湾,即芽庄旁的海滨城市,长期以来一直是俄罗斯及后苏联地区游客的目的地。无论如何看待这一点,这些都属于最轻易就被暴露的旅行记录之列。

一张机组记录表格。机组姓名、出生日期、出生年份和护照号码列被涂黑并标注为已隐去。航空公司列可见,其中包含 Aeroflot Russian 一行,以及 Korean Air、All Nippon Airways、Eastar Jet 和 Colorful Guizhou Airlines。底部可见一个 DOWNLOAD AS JSON 按钮。
机组记录,身份识别列已涂黑。保留可见的航空公司列显示出其覆盖范围:Aeroflot Russian 夹在 Korean Air 与 Eastar Jet 之间,下方是 Colorful Guizhou Airlines。右下角的 Download as JSON 按钮出自该集群自带的界面:取走这些数据不需要任何专门工具。

该系统的覆盖范围也超出了行程起点或终点在越南的人群。每条记录都带有独立的首站、中转和目的地机场字段,其中许多只列出了外国机场:香港、新加坡樟宜、上海、澳门、吉隆坡。中转和过境旅客与其他所有人一并被采集,其完整身份被附加到一段起点和终点都未必在越南的行程上。

一张乘客记录表格,护照号码和姓名列被涂黑。可见列显示的目的地机场包括岘港、金兰湾、香港、新加坡樟宜、上海和吉隆坡,国籍代码包括 NLD(荷兰)、CHN(中国)和 BLR(白俄罗斯)。
同一索引,滚动至航线字段。国籍包括荷兰(NLD)、中国(CHN)和白俄罗斯(BLR);机场既有越南度假目的地(金兰湾、富国岛、岘港),也有境外枢纽(香港、新加坡樟宜、上海、澳门)。此处两行白俄罗斯籍记录的目的地均为金兰湾。

细致到行李条

细节并未止步于谁和去了哪里。每条记录还带有此次行程的运行痕迹,包括为该乘客办理托运时登记的行李条编号。它就是裹在你行李箱把手上的那张贴纸上的号码,标明行李去往何处并将其与你关联。对这样规模的数据集而言,这是一种不寻常的细粒度:不只是某人乘机,而是哪件行李是他的。

一张乘客记录表格,出生日期和护照号码列被涂黑。可见一个行李列,取值如 128454358 和 CX480085。国籍、航空公司和目的地列可见,其中包括一名前往金兰湾的白俄罗斯籍乘客。
已填充数据的行李列。出生日期和护照号码已涂黑;行李条编号和航线保持原样。第四行的白俄罗斯(BLR)记录,是一名乘客和他们的行李,目的地为金兰湾。

集群是如何被访问到的

该集群并非对整个互联网完全敞开。直接向其发送的请求会被拒绝。使其可达的是一个云端跳板:从那里出发,数据库会应答,并接受 Elasticsearch 的默认登录凭据,即软件自带、运营方从未更改过的用户名和密码。默认凭据算不上防御手段。它是公开记载的,也是任何扫描器最先尝试的东西。整个过程没有利用任何软件漏洞,也不需要。一旦进入内部,集群自带的 Web 控制台就提供了 Download as JSON 按钮:取走这些数据甚至不需要写脚本。

这次暴露不是几天的事。乘客索引创建于 2022 年 9 月 15 日。公开的互联网扫描服务 FOFA 于 2022 年 10 月首次记录到该主机,到 2023 年年中已将其归类为数据库。因此在我们发现之前,这个数据存储凭默认登录凭据就已可访问超过三年。乘客数据在整个这段时间内是否都可被取走,以及还有谁访问过它,我们无法确定。

Elasticvue 索引列表,显示 crew-index 有 10,465,631 个文档,guest-v3-index 有 210,318,069 个文档,并附创建日期:guest-v3-index 创建于 2022 年 9 月 15 日,crew-index 创建于 2023 年 5 月 23 日,旁边还有体量很小的航空公司、机场和国家参照索引。
索引列表。乘客索引(guest-v3-index)有 210,318,069 条记录,机组索引(crew-index)有 10,465,631 条,此外还有体量很小的参照表。创建日期,乘客索引为 2022 年 9 月、机组索引为 2023 年 5 月,显示出该系统已运行多久。

我们如何在不读取内容的情况下完成清点

我们清点了这个集群,但没有读取任何人的记录。Elasticsearch 通过其计数和聚合接口回答”有多少条记录符合此条件”以及”按航空公司分组统计”这类问题,这些接口返回的是总数和分类计数,从不返回单条记录。我们保留了文档计数、数据的时间范围、结构中的字段名列表,以及少量所有身份识别字段均已涂黑的截图,截图仅用于确认这些字段确有数据。没有任何乘客或机组个人记录被取回、存储或交给我们通知的主管部门以外的任何人。

Elasticsearch 中的一个索引大致相当于一张表。存放人员数据的两个索引规模如下。

  • 109,232,811条记录标记为男性
  • 101,085,255条记录标记为女性
  • 1,008家航空公司在数据中被列出
索引记录数大小
乘客(guest-v3-index210,318,06995.3 GB
机组(crew-index10,465,6314.3 GB

二十家承运人记录数超过百万

被暴露的数据集所涉及的旅客远不止越南本国的旅客。它列出了 1,008 家承运人,其中 20 家各自的记录超过一百万条。

承运人记录数
VietJet Air45,820,123
Vietnam Airlines43,184,871
韩国承运人(Korean Air、Asiana、Jeju Air、Jin Air、Tway)约 2470 万
新加坡承运人(Singapore Airlines、Scoot)约 770 万

Qatar Airways、Emirates、All Nippon Airways、Cathay Pacific 和 China Southern 各自也有数百万条记录。榜首是两家越南承运人并不意外。值得注意的是,紧随其后的是韩国、海湾国家、日本和中国的国家航空公司:这些数据的失守从来就不只关乎越南。从这些记录本身,我们无法判断是何种安排把外国承运人的乘客清单汇入了一个托管在越南的单一数据存储,并在其中保留了九年。

集群托管在何处

我们的归属分析仅基于已掌握的信息:托管网络、索引架构、承运人构成、数据新鲜度和访问控制状态。该集群位于越南国有电信运营商 Viettel 名下的网络地址空间,归属 AS38731。ASN 是互联网地址背后网络运营方的标识符,而这一个注册在河内的一处科技园区。其数据结构是 ICAO 预报旅客信息数据源,承运人构成以两家越南承运人为首,VietJet Air 有 45,820,123 条记录,Vietnam Airlines 有 43,184,871 条。这样的托管环境和承运人构成,符合一套采集所有途经越南的国际人员流动数据的系统。

我们当时的评估:

在所有可依据既有数据核查的维度上,证据都与以下判断一致:这是一套真实、在线运行的越南乘客信息系统被暴露,而不是由第三方托管在别处的副本。

倒卖窃取数据的一方通常不会把数据托管在受害国境内一个可追溯的国内网络上,而且他们的副本在浮出水面时往往已经陈旧。国内托管、专门设计的数据结构以及五周的数据新鲜度,三者合起来更像是在线数据,而非二次倒卖的转储。

关于运营方身份

我们无法确认是哪个机构运营这个集群,我们也谨慎地不夸大这一关联。我们连同其他主管部门一并通知了越南国家网络安全事件响应机构(VNCERT);对方未作回应。将该系统与越南联系起来的是托管环境和数据结构。运营方身份不是我们从外部所能确定的,我们对此保持存疑。

披露过程

  • 2026 年 6 月 3 日我们在对开放数据库的研究中发现该暴露集群,并于当日开始通知受影响方和责任方:各国 CERT、数据保护主管部门、航空业机构,以及其乘客出现在该数据集中的航空公司。
  • 数日之内该主机下线,不再可访问。此次具体暴露已被关闭。

我们在发现当天就上报了,并在访问入口关闭之前没有公开。本次枚举为只读操作,没有任何个人记录被留存或分享给通知的主管部门之外的任何人。

我们仍然无法确定的事

具体的漏洞已经堵上,但更大的问题不是我们能回答的:

  • **它开放了多久。**乘客索引可追溯至 2022 年 9 月,公开扫描器自 2022 年 10 月起就记录到该主机。数据在整个这段时间内是否都可被取走,以及是否还有其他人访问或复制过它,我们无法确定。
  • **谁应当负责。**运营方身份仍未查明,我们通知的越南主管部门也未作回应。
  • **旅客是否会被告知。**航空公司和各国数据保护主管部门是否会通知那些记录遭暴露的旅客个人,尚无答案。
  • **数据为何汇集于此。**为何如此多外国承运人的乘客清单被整合进一个托管在越南的数据存储,并在其中保留了九年,这些记录本身无法解释。

如果你在互联网上运行数据库

此处的错误很常见,规避成本也很低。对于运行 Elasticsearch 或任何类似数据存储的团队:

  • **更改默认登录凭据,并让数据端口远离公网。**软件自带的凭据是公开常识;不作更改等同于没有密码。启用真正的身份验证,并把数据库放在网络边界之后。
  • **假定任何可达的东西都会被找到。**全网扫描是持续且自动化的。这台主机在我们发现它的数年前就已被一个公开扫描器收录。
  • **弄清最敏感的数据存放在哪里,以及谁能访问到它。**此处的危害源于一个数据存储保存了数亿人的身份和行动数据,并且通过一个跳板加上未更改的默认登录凭据即可访问。先把这些数据存储盘点清楚。
How to cite
Kinryū Labs (2026). 2.2 亿旅客记录:一个与越南相关的乘客数据库被公开暴露. https://kinryu.sh/zh/reports/vietnam-apis-exposure/