一段被“传染”的代码,让两家科技公司陷入1500万元索赔漩涡。
A公司技术总监王某在2015年开发了VirtualApp虚拟化引擎,2016年将代码上传至开源平台并声明适用GPL V3协议(附加“禁止商业使用”条款)。2017年,王某删除开源协议转向闭源商业化运营。
B公司开发四款视频美化APP时,嵌入了VirtualApp的沙盒分身功能代码,用户可免费下载但需付费解锁高级功能。其软件未提供源代码下载,也未声明使用开源组件。
A公司取证后发现:
被诉软件中沙盒模块与VirtualApp核心代码相似度达92%
B公司通过会员费获利超800万元
软件运行日志显示调用了VirtualApp的API接口
“我们投入五年研发的核心技术,成了别人商业套装的免费零件。”王某在法庭陈述时展示的代码比对图,揭开了开源协议合规风险的冰山一角。
一、裁判结果与理由
某法院判决:
停止侵权:B公司立即停止四款软件的下载、安装及运营服务
赔偿损失:赔偿A公司经济损失及维权支出50万元
责任认定:代收会员费的第三方平台不承担连带责任
裁判核心观点:
“GPL V3协议属于附解除条件的著作权合同,被许可人违反开源义务时授权自动终止,后续使用行为构成侵权。技术隔离措施未达到协议豁免标准时,衍生软件需整体开源。”
法院认定侵权的关键逻辑链:
传染性触发:B公司修改的沙盒功能代码与开源代码形成“衍生作品”,触发GPL协议的传染机制
授权终止:未提供源代码下载违反协议核心义务,导致GPL授权自动终止
权属独立:A公司虽后期转为闭源,但对开源期间贡献的代码仍享有著作权
二、开源技术合同中的三重法律风险
(一)开源协议的“传染性”陷阱
GPL系列协议的强传染性要求:
若衍生作品与开源代码存在“协同工作或数据交互”,整个软件需开源
仅通过命令行、套接字等技术隔离,不必然豁免开源义务
典型案例:某办公软件案中,法院认定“通过命令行调用底层系统”不构成协议定义的“独立程序”,被告赔偿150万元
上海君澜律师事务所俞强律师提示:企业使用GPL/LGPL等互惠型许可时,须建立“开源组件清单”,重点筛查具有高传染风险的依赖项。建议采用Apache、MIT等宽松许可代码开发商业软件核心模块。
(二)知识产权瑕疵担保责任
《民法典》第870条明确规定:
“技术许可合同的许可人应当保证自己是所提供的技术的合法拥有者,并保证所提供的技术完整、无误、有效。”
在委托开发场景中,受托方需承担双重担保义务:
权利来源合法:保证交付代码不侵犯第三方权利
开源合规:确保代码使用符合开源协议约束
败诉教训:某环保科技公司因受托方交付的软件包含他人ShopNC商城代码,法院判决解除合同并全额返还开发费
(三)违约与侵权的责任竞合
最高法在(2021)最高法知民终51号案中确立裁判规则:
开发者违反开源协议 ≠ 丧失软件著作权
著作权侵权诉讼与开源协议违约之诉应分别审理
责任区分模型:
graph LR A[开源协议违约] -->|导致| B(授权终止) C[第三方使用代码] -->|未经许可| D(著作权侵权) ">
这意味着即便权利人自身违反GPL协议,仍可向第三方主张侵权责任。
三、企业合规操作指南
(一)技术合同必备条款
权利瑕疵担保条款
“受托方保证交付成果不侵犯第三方知识产权,若因开源组件使用违规导致损失,承担全额赔偿责任”开源审计权条款
“委托方有权对交付代码进行开源合规扫描,发现违规的可拒付尾款”
(二)开发全周期风控
阶段动作工具推荐设计阶段筛查依赖库许可证类型FOSSA、Black Duck编码阶段隔离GPL模块与专有代码Docker容器化部署交付前执行SCA(软件成分分析)软安源兮SCA运维阶段持续监控新引入组件GitHub Dependabot
上海君澜律师事务所俞强律师特别提示:2023年某网关系统侵权案显示,68%的开源侵权源于前员工带离代码。建议在劳动合同中增加:“员工在职期间接触的开源代码,其使用限制义务延续至离职后三年”。
四、司法实践新动向
2024年涉新质生产力典型案例释放信号:
权属登记优势:著作权登记成为开源衍生软件权属的初步证据(减轻权利人举证负担)
技术隔离从严:仅声明“模块独立”不足以免责,需提供架构设计文档及交互日志
赔偿计算创新:会员费收入可直接计入侵权获利,不再扣除“正当运营成本”
风险提示:本文所述案例及解决方案系基于公开裁判文书分析,具体案件需要咨询专业律师。
作者介绍:俞强律师
执业机构:上海君澜律师事务所(高级合伙人)
地址:上海市浦东新区世纪大道1198号世纪汇广场一座12楼
教育背景:北京大学法律硕士
专业荣誉:
2024年“君澜专业领航奖”
上海政法学院刑事司法学院实习导师
法律咨询方式:俞强律师已在公众号“律师俞强”开通免费电话咨询,打开微信关注即可。
热门跟贴