[ 
https://issues.apache.org/jira/browse/THRIFT-5855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17948361#comment-17948361
 ] 

Hasnain Lakhani commented on THRIFT-5855:
-----------------------------------------

Hi [~jensg] ,

> Can we add c# as well or what is the rational behind leaving it out? Or, to 
>ask in another way, how hard will it be to add other language bindings later?

I initially focused on the list of languages supported by OSS-fuzz 
([https://google.github.io/oss-fuzz/getting-started/new-project-guide/#language])]
 as those are languages I am comfortable with and know how to fuzz, and most 
importantly the project would get continuous fuzzing for free potentially 
(which is nice).

I've updated the ticket and added a TODO for also adding support for other 
languages that aren't as well supported yet. I can look into those in the 
future. We *should* fuzz these (quite sure they'd unearth bugs), but without 
continuous fuzzing infrastructure there may be bit-rot (or we'd need a 
volunteer to periodically run them).

To implement them (mostly as a note to self): 1) research the right fuzzer 
(e.g. for .net I found a potential lead), 2) confirm it works with thrift, and 
3) actually write the fuzzers.

>From experience it took me a full workday (6-8 hours) per language after the 
>first one (which took significantly longer) as there's a lot of copy-paste. 
>But I was familiar with the fuzzing tools for these languages. For a new 
>language/tool, plus for someone without experience with fuzzing, I expect it 
>may take 3-4 days of work to add new language bindings. Not impossible, but 
>for a volunteer effort it may take a bit.

> For any information that potentially might not be shared on a public channel 
> feel free to post to the private mailing list. Would that work for you?
 
Just to confirm, were you referring to the security@ mailing list, or is there 
a private one for the thrift PMC/committers? The lists I saw on 
[https://thrift.apache.org/mailing] were public.

> Improve fuzzing support 
> ------------------------
>
>                 Key: THRIFT-5855
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5855
>             Project: Thrift
>          Issue Type: Epic
>            Reporter: Hasnain Lakhani
>            Assignee: Hasnain Lakhani
>            Priority: Major
>
> Improve fuzzing support so we can make the generated code more robust. In 
> particular, thrift is currently fuzzed on oss-fuzz, but:
>  * the build is failing
>  * it only supports go
>  * and that fuzzer isn't optimal either
> This ticket will be considered complete when there are fuzzers for all the 
> supported languages on oss-fuzz:
>  * c
>  * c++
>  * Rust
>  * Go
>  * Swift
>  * Python
>  * Javascript
>  * Java/JVM (and all of the supported thrift JVM languages here)
>  
> Other languages are _initially_ out of scope. As a follow up, do investigate 
> fuzzing (even if not on oss-fuzz) for other languages, e.g. C#/ruby (TODO: Do 
> a thorough investigation).
>  
> For each language, we want at bare minimum:
>  * a fuzzer that just deserializes a structure from fuzzer input
>  * one that ensures things round trip properly
> ... for each of the supported protocols (e.g. binary/compact).
> For languages where this is easy, we should add structure aware fuzzing 
> support, and/or also test the networking code.
> Then, further improve the fuzzers by adding corpora, dictionaries, and doing 
> fuzz introspector inspection.
>  
> I'll update this ticket/file sub-tickets as the work progresses.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to