浏览器里输入几段字母和数字,就能看到陌生人的护照、驾照正反面。没有密码,没有登录,没有访问控制。链接像普通图片地址一样躺在公网。
这次出事的是爱尔兰软件商 Nefos Solutions,也以 Cannabis Club Systems,简称 CCS,对外服务。它为西班牙部分大麻俱乐部提供销售、会计、入场验证系统,以及一个叫 PuffPal 的 App。安全研究员 Sammy Azdoufal 发现,相关系统中约 98.5 万份照片 ID 曾暴露。
最刺眼的细节不是“有漏洞”。而是 Nefos 曾在知道风险后锁过证件图片,后来又因为俱乐部抱怨图片无法显示、业务受影响,把访问重新放开。
这说明问题不只在代码。问题在优先级。
漏了什么:证件、联系方式、消费偏好,都可能被拼起来
受影响者主要是使用相关系统的西班牙大麻俱乐部会员,也包括约 3 万名美国访客及部分名人。这里要说清边界:目前不能说所有西班牙大麻俱乐部都受影响,也不能说所有 PuffPal 用户都必然中招。
Nefos 称,目前没有证据显示除研究员外有外部访问。也就是说,还不能断言已经发生大规模下载或转卖。
但风险已经很具体。
| 数据类型 | 可能暴露的内容 | 对用户的影响 |
|---|---|---|
| 身份证件 | 护照、驾照、照片 ID、护照号 | 身份盗用、诈骗开户、黑市交易 |
| 联系方式 | 电话、住址、邮箱 | 精准骚扰、钓鱼邮件、社工攻击 |
| 俱乐部记录 | 偏好品种、每月消费量 | 隐私污名化、勒索风险 |
| App 内容 | 会员与俱乐部私信 | 私密关系、行为轨迹被拼图 |
漏洞也不是单点失误。
Azdoufal 反编译 PuffPal 后发现,App 内有明文 Stripe 密钥;修改 user_id 就可能访问他人资料;公开 API 会返回个人信息;证件图片放在可猜的公网 URL 下;后台账户密码强度也很弱。
这类组合很危险。单个漏洞可能只是缝隙,多个低级问题叠在一起,就会变成一套现成的数据出口。
Nefos 在媒体追问后关闭了 PuffPal 和脆弱 API。公司称已联系爱尔兰数据保护委员会 DPC,将通知用户、修复系统并承担罚款。
但欧盟数据泄露规则通常要求在 72 小时内披露。Nefos 没有及时做到。合规账还没结完。
最反常的取舍:业务可用性压过了证件安全
这件事最值得盯的,不是“谁写错了一行代码”。而是系统怎么在真实压力下做选择。
原报道里有个关键细节:Nefos 曾一度锁住证件图片。但俱乐部发现图片不能像过去那样显示,入场验证和日常运营受影响。然后,图片又被放开。研究员后来甚至发现,自己的护照重新出现在无保护链接里。
这不是罕见的人性弱点。它很日常。
俱乐部要的是快。扫 QR、看证件、放人,队伍不能堵。
软件商要的是客户别走。投诉先处理,系统先恢复。
用户只是在进门前上传一次证件,很少有人会追问:这张护照后来存在哪里?谁能看?多久删除?
于是身份证件被当成了运营素材。需要时调出来,看一眼,留着下次用。对前台很方便,对产品指标也友好。对用户来说,代价藏在后台。
“天下熙熙,皆为利来。”这句话放在这里很准。KYC 本来是为了合规和信任,落到一些中小系统里,却变成了低成本采集身份数据的接口。收集时像风控,保管时像临时文件夹。
Nefos 创始人 Andreas Nilsen 表示责任最终在公司,也提到外包商 9Series 负责 PuffPal 和相关 API 开发;9Series 暂未回应。
这个说法有现实复杂性,但不能把责任稀释掉。用户把证件交给的是这套俱乐部系统。核心系统由 Nefos/CCS 提供。外包商写了代码,不等于数据控制者可以把合规责任外包出去。
对正在采购会员系统、门禁系统、KYC 工具的团队,这个案例会改变一个动作:别只看功能演示,先问数据怎么存、谁能访问、多久删除、出事谁通报。
如果供应商答不上来,采购应该延后。不是谨慎过头,是证件数据出事后的赔偿、停服和信任成本,远高于上线快几周。
KYC 便利化,正在放大中小系统的安全短板
我更在意的是,这类事故不会只发生在大麻俱乐部。
过去 KYC 主要在银行、支付、交易所这类强监管场景。现在会员制消费、租赁、成人内容、活动入场、线下门禁,都在向用户要照片 ID。理由都能成立:验年龄、防欺诈、管会员、提效率。
现实问题是,很多系统只学会了“收集”,没学会“保管”。
这里有一个行业错位:
| 场景 | 收集证件的收益 | 安全投入的阻力 |
|---|---|---|
| 会员/门禁系统 | 入场更快、人工更少、运营更顺 | 加密、权限、审计会增加开发成本 |
| KYC/年龄验证 | 看起来更合规,降低平台责任感 | 数据最小化会限制后续运营使用 |
| 中小 SaaS | 功能上线快,客户容易买单 | 安全团队和合规流程常常不足 |
这和早期互联网很像,但不完全一样。早年网站随手收邮箱、手机号,泄露后很烦;现在随手收的是护照和驾照,后果更硬。邮箱可以换,护照号和证件影像没那么容易“重置”。
对普通用户,最现实的动作不是立刻恐慌,而是收缩授权。
如果某个会员服务没有强监管背景,却要求上传护照或驾照,至少要看三件事:是否说明保存期限,是否提供删除渠道,是否说清第三方处理方。说不清,就观望,或者换低敏方式验证。
对产品负责人,动作更直接:
- 能不存证件原图,就不要存。
- 必须存,就限制期限、限制访问、记录审计。
- 证件图片不要放在可猜 URL 下。
- API 不能靠 user_id 这种薄权限保护。
- 密钥不能明文塞进 App。
- 出事通报要按监管时限走,别等媒体追问。
Nefos 说会让独立安全研究员验证,并承诺未来做到“100% secure”。这只能当作创始人的表态,不能当事实。安全里最危险的词,往往就是“百分之百”。
接下来真正要看的也不是一句承诺。
看三件事:DPC 是否进一步介入并处罚;Nefos 是否给出具体通知和补救方案;使用相关系统的俱乐部是否迁移、暂停或重签数据处理条款。
如果这些都只是口头修复,那这次事件就会变成一个坏模板:数据泄露发生后,系统下线几天,换几句承诺,业务继续跑。
这才是最糟的结局。不是一次事故过去了,而是行业学会了事故可以这样过去。
