Comments (8)
@zambbo What is the value you are using for COAP_MAX_PDU_SIZE
? That #define disappeared back in 2017, and was replaced by COAP_DEFAULT_PDU_SIZE
.
from libcoap.
oh, the #define COAP_MAX_PDU_SIZE 1152
is dropped. the value of COAP_MAX_PDU_SIZE
is 1152
from libcoap.
OK. An issue is that coap_add_option(pdu, COAP_OPTION_URI_PORT, 8, data);
is stating that the size of data
is 8, when in reality it is 4.
from libcoap.
Yes, if the 3rd argument in coap_add_option function is greater than 4th argument buffer size, buffer overflow occurs in memcpy function in coap_opt_encode.
from libcoap.
OK, but is user error in what was passed to coap_add_option()
that causes the overflow. coap_opt_encode()
has no way of checking whether bad data is passed in or not.
from libcoap.
How about adding a length validation logic in coap_add_option to check for incorrect data being passed?
from libcoap.
Ignoring the requirement that the API does not change for now. Iām not sure how you can check the size of a variable within the function, so this would need to be passed in, but again there could be user error. In your case, the 4 bytes following data
are undefined, hence your found issue and I could have expected you to have used sizeof(data)
. But that would fail if data
was a pointer.
from libcoap.
Any application call to a public libcoap API that provides (and states) a buffer size bigger than the actual size of the buffer, then any fuzzing logic should pick this up (which may be in a called sub-function). It is not a libcoap issue unless libcoap itself is doing this from its own internal data management.
As this example is for bad application provided data + data_size, I am closing this Issue. If however you do find an internal libcoap issue, then please raise a new Issue with the details to be able to reproduce it.
from libcoap.
Related Issues (20)
- Request token is unexpectedly replaced with nonsense HOT 15
- Q-Block support detection fails in some cases HOT 5
- [Non-conformance] Handling CoAP Invalid Versions HOT 2
- No callback if DTLS connection with OpenSSL server and client fails due to PSK mismatch HOT 3
- Add coap_get_resource_from_uri_path() to man pages. HOT 2
- HTTP/S Support for Proxy URIs in CoAP to HTTP Proxy HOT 4
- [Non-conformance] Handling Unreapeatable Options HOT 1
- Incorrect header passed to response_handler after finishing Replay Window scenario. HOT 7
- Actively denying a new session HOT 4
- Failing to set mtu when WOLFSSL_DTLS_MTU is enabled HOT 1
- Assertion !lock->in_callback failed in coap_lock_lock_func() during application shutdown HOT 10
- Build with wolfSSL not loading certificates on server side HOT 3
- Memory leak in LwIP function `coap_udp_recvs` HOT 1
- PDU use after free when sending an OSCORE message with OSCORE disabled at build time HOT 5
- coap-client binary PSK HOT 17
- [Question] Proxy-scheme and proxy-uri example with coap-client and coap-server applications HOT 6
- Make coap_print_wellknown customizable HOT 6
- Wrong
- Access Token option addition to libcoap HOT 1
- Clarification on cancelling a block-wise request in the middle of transaction at client's end HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libcoap.