CVE-2026-44827 ਇੱਕ ਅਜਿਹੀ ਖਾਮੀ ਹੈ ਜੋ ਹਮਲਾਵਰ ਨੂੰ Hugging Face Diffusers ਮਾਡਲ ਲੋਡ ਕਰਦੇ ਸਮੇਂ ਮਨਮਾਨਾ (arbitrary) ਕੋਡ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਭਾਵੇਂ trust_remote_code ਫਲੈਗ ਬੰਦ ਹੀ ਕਿਉਂ ਨਾ ਹੋਵੇ। ਖੋਜਕਰਤਾਵਾਂ ਨੇ ਇਸ ਖਾਮੀ ਨੂੰ “FaceHugger” ਦਾ ਨਾਮ ਦਿੱਤਾ ਹੈ ਅਤੇ ਇਸ ਦਾ ਕਾਰਨ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਦੋ-ਪੜਾਵੀ (two-phase) ਮਾਡਲ ਲੋਡਿੰਗ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਇੱਕ ਰੇਸ ਕੰਡੀਸ਼ਨ (race condition) ਨੂੰ ਦੱਸਿਆ ਹੈ। ਕੋਈ ਵੀ ਪਾਈਪਲਾਈਨ ਜੋ ਹੱਬ ਤੋਂ ਮਾਡਲਾਂ ਨੂੰ ਖਿੱਚਦੀ (pulls) ਹੈ, ਪ੍ਰਭਾਵਿਤ ਹੋ ਸਕਦੀ ਹੈ।
ਇਹ ਕਮਜ਼ੋਰੀ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ
Diffusers, text-to-image ਅਤੇ ਹੋਰ diffusion ਮਾਡਲਾਂ ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਜੁਲਾਈ 2026 ਵਿੱਚ ਇਸ ਦੇ 8.1 ਮਿਲੀਅਨ ਡਾਊਨਲੋਡ ਦਰਜ ਕੀਤੇ ਗਏ ਸਨ, ਇਸ ਲਈ ਅਣਗਿਣਤ CI/CD ਜੌਬਸ, ਕੰਟੇਨਰ ਇਮੇਜਿਸ ਅਤੇ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਇਨਫਰੈਂਸ ਸੇਵਾਵਾਂ ਇਸ 'ਤੇ ਨਿਰਭਰ ਹਨ। ਇਹ ਬੱਗ ਉਸ ਮੁੱਖ ਸੁਰੱਖਿਆ ਵਿਧੀ (trust_remote_code) ਨੂੰ ਅਸਫਲ ਕਰ ਦਿੰਦਾ ਹੈ ਜਿਸ ਨੂੰ ਡਿਵੈਲਪਰ ਮਾਡਲ ਦੇ ਨਾਲ ਆਉਣ ਵਾਲੇ ਅਣਭਰੋਸੇਯੋਗ Python ਕੋਡ ਨੂੰ ਰੋਕਣ ਲਈ ਚਾਲੂ ਕਰਦੇ ਹਨ।
ਇਹ ਬਾਈਪਾਸ (bypass) ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
- ਦੋ-ਪੜਾਵੀ ਲੋਡਿੰਗ (Two-phase loading): Diffusers ਪਹਿਲਾਂ ਇੱਕ ਮਾਡਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫੈਚ ਕਰਦਾ ਹੈ, ਫਿਰ ਦੂਜੀ ਬੇਨਤੀ (request) ਮਾਡਲ ਵੇਟਸ (weights) ਅਤੇ ਕਿਸੇ ਵੀ ਸਬੰਧਤ ਕੋਡ ਨੂੰ ਖਿੱਚਦੀ ਹੈ।
- ਰੇਸ ਕੰਡੀਸ਼ਨ (Race condition): ਸੁਰੱਖਿਆ ਜਾਂਚ ਜੋ ਪਹਿਲੀ ਬੇਨਤੀ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ, ਉਹ ਦੂਜੀ ਬੇਨਤੀ ਤੱਕ ਸੀਮਤ ਨਹੀਂ ਰਹਿੰਦੀ।
- ਪੇਲੋਡ ਇਨਸਰਸ਼ਨ (Payload insertion): ਇੱਕ ਹਮਲਾਵਰ ਜੋ ਦੂਜੀ ਬੇਨਤੀ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ, ਉਹ ਮਾਲੀਸ਼ੀਅਸ (malicious) ਕੋਡ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ ਜਿਸ ਨੂੰ ਲਾਇਬ੍ਰੇਰੀ ਬਾਅਦ ਵਿੱਚ ਚਲਾਉਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਟਰਸਟ ਗੇਟ (trust gate) ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਾਈਪਾਸ ਹੋ ਜਾਂਦਾ ਹੈ।
ਕਿਉਂਕਿ ਜਾਂਚ ਸਿਰਫ ਸ਼ੁਰੂਆਤੀ ਬੇਨਤੀ ਨੂੰ ਦੇਖਦੀ ਹੈ, ਇਸ ਲਈ trust_remote_code ਨੂੰ ਡਿਸੇਬਲ ਕਰਨਾ ਸੁਰੱਖਿਆ ਦਾ ਇੱਕ ਝੂਠਾ ਅਹਿਸਾਸ ਦਿੰਦਾ ਹੈ।
ਡਿਵੈਲਪਰਾਂ ਲਈ ਤੁਰੰਤ ਕਦਮ
- Diffusers ਦੇ ਵਰਜ਼ਨ ਨੂੰ ਪਿੰਨ (Pin) ਕਰੋ:
requirements.txtਜਾਂ ਆਪਣੀ ਲੌਕ ਫਾਈਲ ਵਿੱਚ Diffusers ਦੇ ਵਰਜ਼ਨ ਨੂੰ ਪਿੰਨ ਕਰੋ ਤਾਂ ਜੋ ਕਮਜ਼ੋਰ ਰੀਲੀਜ਼ ਵਿੱਚ ਅਚਾਨਕ ਅਪਗ੍ਰੇਡ ਹੋਣ ਤੋਂ ਰੋਕਿਆ ਜਾ ਸਕੇ। - ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ 'ਆਨ-ਦ-ਫਲਾਈ' (on-the-fly) ਮਾਡਲ ਪੁੱਲ ਕਰਨ ਤੋਂ ਬਚੋ: ਮਾਡਲਾਂ ਨੂੰ ਇੱਕ ਭਰੋਸੇਯੋਗ ਆਰਟੀਫੈਕਟ ਸਟੋਰ (ਜਿਵੇਂ ਕਿ ਇੱਕ ਅੰਦਰੂਨੀ S3 bucket) ਵਿੱਚ ਡਾਊਨਲੋਡ ਕਰੋ ਅਤੇ ਉੱਥੋਂ ਉਹਨਾਂ ਨੂੰ ਲੋਡ ਕਰੋ।
- ਮਾਡਲ ਰੈਪੋਜ਼ਟਰੀਆਂ ਦੀ ਜਾਂਚ (Audit) ਕਰੋ: ਵਰਤੋਂ ਤੋਂ ਪਹਿਲਾਂ ਮਾਡਲ ਰੈਪੋਜ਼ਟਰੀਆਂ ਦੀ ਜਾਂਚ ਕਰੋ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਮਾਡਲ ਦੀਆਂ ਕੋਡ ਫਾਈਲਾਂ ਉਮੀਦ ਕੀਤੇ ਹੈਸ਼ਾਂ (hashes) ਨਾਲ ਮੇਲ ਖਾਂਦੀਆਂ ਹਨ ਜਾਂ ਕਿਸੇ ਪ੍ਰਮਾਣਿਤ ਸਰੋਤ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ।
- ਨੈੱਟਵਰਕ ਐਗਰੈਸ ਕੰਟਰੋਲ (network egress controls) ਲਾਗੂ ਕਰੋ: ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਬਿਲਡ ਏਜੰਟ ਅਤੇ ਇਨਫਰੈਂਸ ਸਰਵਰ ਜਨਤਕ Hugging Face ਹੱਬ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦੇ, ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਇਸ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੇ।
- ਮਾਡਲ ਲੋਡਿੰਗ ਨੂੰ ਆਇਸੋਲੇਟਡ ਕੰਟੇਨਰਾਂ ਜਾਂ ਸੈਂਡਬਾਕਸਾਂ (sandboxes) ਦੇ ਅੰਦਰ ਚਲਾਓ: ਘੱਟ ਤੋਂ ਘੱਟ ਅਧਿਕਾਰਾਂ (privileges) ਨਾਲ ਮਾਡਲ ਲੋਡਿੰਗ ਨੂੰ ਆਇਸੋਲੇਟਡ ਕੰਟੇਨਰਾਂ ਜਾਂ ਸੈਂਡਬਾਕਸਾਂ ਦੇ ਅੰਦਰ ਚਲਾਓ, ਤਾਂ ਜੋ ਅਣਚਾਹੇ ਕੋਡ ਦੇ ਚੱਲਣ ਦੇ ਪ੍ਰਭਾਵ ਨੂੰ ਸੀਮਤ ਕੀਤਾ ਜਾ ਸਕੇ।
ਸਿੱਖਿਆ (Takeaway):
FaceHugger ਬੱਗ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ trust_remote_code ਨੂੰ ਬੰਦ ਕਰਨਾ ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ Diffusers ਨੂੰ ਅਪਡੇਟ ਨਹੀਂ ਕਰਦੇ ਅਤੇ ਆਪਣੀ ਮਾਡਲ ਇੰਜੈਸਸ਼ਨ ਪਾਈਪਲਾਈਨ (model ingestion pipeline) ਨੂੰ ਮਜ਼ਬੂਤ ਨਹੀਂ ਕਰਦੇ, ਹਰ ਰਿਮੋਟ ਮਾਡਲ ਪੁੱਲ ਮਾਲੀਸ਼ੀਅਸ ਕੋਡ ਲਈ ਇੱਕ ਸੰਭਾਵੀ ਐਂਟਰੀ ਪੁਆਇੰਟ ਬਣਿਆ ਰਹੇਗਾ।
